я должен написать программу в 8086 сборки, которая вычисляет это:язык 8086 сборки без знака интерпретации
(a+b*c+2/c)/(2+a)+e
где
a
, b
- byte
c
- word
e
- doubleword
,
в неподписанном интерпретации.
До сих пор у меня есть это:
assume cs:code,ds:data
data segment
a db 4
b db 2
c dw 16
e dd 126
data ends
code segment
start:
mov ax,data
mov ds,ax
и вот моя программа
mov al,b ; al=b
mov ah,0 ; ax=b;
mul c; dx:ax=b*c; b*c=doubleword
mov bx,ax; we save b*c in bx to use ax in the division 2/c
mov al,2; al=2
mov ah,0; al=ax=0
div c; ax=dx:ax/c ; dx=dx:ax%c;
Я не знаю, как продолжить.
Вам нужна помощь. См. [** Искусство сборки **] (https://courses.engr.illinois.edu/ece390/books/artofasm/artofasm.html). Особенно [** Арифметические операции **] (https: //courses.engr .illinois.edu/ece390/books/artofasm/CH06/CH06-2.html # HEADING2-1) и [** Sign and Zero Extension **] (https://courses.engr.illinois.edu/ece390/books /artofasm/CH01/CH01-2.html#HEADING2-151) –