1. Заголовок или название темы должно быть информативным 2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE] 3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора. 5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM! 6. Проверяйте программы перед тем, как выложить их на форум!!
Создать прогрмму , где даны 10 натуральных чисел. Вывести на экран максимальные и минимальные числа. Сидим с братом и не можем догнать ход проги , поняли одно что можно сделать через память или массив. Пожалуста помогите народ , буду весьма благодарен !!!!!!!!!!!!!!!!!
Теперь стал ругаться на mov cx,i , не знает опреанд i
Да не в том дело, что он не знает. Ругается на то, что ты в 2-х байтовый регистр CX пытаешься однобайтовое значение i засунуть... Кстати, тут еще 2 проблемы. Поскольку код изначально тестировался на 32-битном компиляторе, массив состоит из элементов типа Integer, а на 32-битах размер Integer-а равен 4 байтам, ты работаешь с 16-битным компилятором, придется смещение менять на 2...
И еще. WORD PTR не забывай, указывай компилятору, что ты работаешь именно с 2-х байтовыми элементами массива...
Program Posled; Const n = 10; mas: array[1 .. n] of integer = (1, 4, 2, 7, 3, 8, 4, 2, 10, 9);
var i, j: integer; Begin { for i := 1 To n Do Begin write('?'); Readln(Mas[i]); end; }
i := n; asm dec i
@CycleExt: xor bx, bx mov cx, i mov si, 0
@CycleIn: mov di, WORD PTR Mas[si] cmp di, WORD PTR Mas[si+2] jg @Exchange add si,2 loop @CycleIn
jmp @Check
@Exchange: mov bx, WORD PTR Mas[si+2] mov WORD PTR Mas[si+2], di mov WORD PTR Mas[si],bx add si,2 loop @CycleIn