Вычисление выражения по формуле. - Assembler (223322)
Формулировка задачи:
X=(–3A – 5B + 7C)/4- то что пытаюсь сделать
пишет что в 15 18 и 21 строке ошибки
Листинг программы
- .model small
- stack 100h
- dataseg
- A dw 1
- B dw 3
- C dw 2
- X dw ?
- codeseg
- start:
- startupcode
- mov AX,A
- imul AX,3
- neg AX
- mov BX,B
- imul BX,5
- neg BX
- mov CX,C
- imul CX,7
- add AX,BX
- add AX,CX
- neg AX
- mov X,AX
- quit:
- exitcode 0
- end start
Решение задачи: «Вычисление выражения по формуле.»
textual
Листинг программы
- .model small
- stack 100h
- dataseg
- A dw 1
- B dw 3
- C dw 2
- X dw ?
- codeseg
- .286
- start:
- startupcode
- mov AX,A
- imul AX,3
- neg AX
- mov BX,B
- imul BX,5
- neg BX
- mov CX,C
- imul CX,7
- add AX,BX
- add AX,CX
- sar AX,2 ;ax:=ax/4
- mov X,AX
- quit:
- exitcode 0
- end start
Объяснение кода листинга программы
- Объявлены переменные A, B, C и X (dataseg)
- Заданы начальные значения переменных A, B и C равными 1, 3 и 2 соответственно (initialization of A, B and C)
- Переменная X инициализируется неизвестным значением (initialization of X)
- Код выполняется в режиме 286 (80286)
- При запуске программы выполняется startupcode
- Переменная A перемножается на 3 и затем результат вычитается (imul AX,3 и neg AX)
- Переменная B перемножается на 5 и затем результат вычитается (imul BX,5 и neg BX)
- Переменная C перемножается на 7 и затем результат вычитается (imul CX,7 и neg CX)
- Результаты операций с переменными A, B и C складываются (add AX,BX и add AX,CX)
- Результат вычитается на 2 (sar AX,2)
- Результат вычисления записывается в переменную X (mov X,AX)
- Программа завершается с кодом выхода 0 (exitcode 0)
- Завершающий блок кода (end start)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д