Вычислить значение выражения - Assembler (223378)
Формулировка задачи:
Написать программу, которая просит пользователя ввести число Х. Затем программа вычисляет формулу согласно варианту и выдает результат вычисления на экран. После этого программа запрашивает пользователя или он хочет завершить программу и предлагает ввести символы 'Y' ( 'y') или 'N' ( 'n'). Если пользователь вводит символ 'Y' ( 'y') - программа завершается, а если пользователь вводит символ N '(' n '), то программа переходит в начало, то есть опять предлагает ввести число Х, после чего снова выдает результат вычисления.
Решение задачи: «Вычислить значение выражения»
textual
Листинг программы
; допустим, dx = x mov ax,4 sub ax,dx cwd mov cx,5 idiv cx mov cx,ax imul ax imul cx inc ax ; теперь ax = y
Объяснение кода листинга программы
mov ax,4— перенос значения 4 в регистр AX.sub ax,dx— вычитание значения переменной DX из AX.cwd— изменение режима работы процессора для работы с 16-битными числами.mov cx,5— перенос значения 5 в регистр CX.idiv cx— деление значения регистра AX на значение регистра CX с остатком, результат деления сохраняется в AX, а остаток — в DX.mov cx,ax— перенос значения из регистра AX в CX.imul ax— умножение значения регистра AX на значение регистра CX, результат сохраняется в AX.imul cx— умножение значения регистра CX на значение регистра AX, результат сохраняется в CX.inc ax— увеличение значения регистра AX на 1.- Результат выполнения кода — значение регистра AX равно результату выражения.