Правильно ли написана программа (решение уравнения) - Assembler
Формулировка задачи:
Такое уравнение
Y=А−3*(А+В) +С
И не могу запустить. Ну точнее запускаю (tasm,tlink потом td...), а дальше забыл... В какой строчке мне можно будет вписать А, б и ц?
data segment ;------------------------------------ A dw ? B dw ? C dw ? Y dw ? ;------------------------------------ data ends code segment assume cs: code, ds: data start: mov ax, data ; загрузить адрес mov ds, ax ;сегмента данных ;-------------------------------------------------- mov ax, A ; ax:=A mov bx, B ; bx:=B add bx, ax ; bx:=A+B mov ax, bx ; ax:=A+B add bx, bx ; bx:=2*(A+B) add bx, ax ; bx:=3*(A+B) sub bx, A ; bx:=3*(A+b)-A neg bx ; bx:=A-3*(A+B) add bx, C ; bx:=A-3*(A+B)+c mov y, bx ; y:=A-3*(A+B)+c ;----------------------------------------------------------------- quit: mov ax, 4c00h ; код завершения 0 int 21 ; выход в dos code ends end START
Решение задачи: «Правильно ли написана программа (решение уравнения)»
textual
Листинг программы
data segment ;------------------------------------ A dw 45 <---вот здесь B dw 87 <---- C dw 193 Y dw -7
Объяснение кода листинга программы
Список элементов кода:
- data segment - сегмент данных, в котором хранятся переменные
- A dw 45 - определение переменной A, которая содержит значение 45
- B dw 87 - определение переменной B, которая содержит значение 87
- C dw 193 - определение переменной C, которая содержит значение 193
- Y dw -7 - определение переменной Y, которая содержит значение -7 В данном коде определены четыре переменные (A, B, C, Y) и инициализированы их значениями (45, 87, 193, -7) в сегменте данных.