Александр
Александр

Помогите решить задачу на ассемблере

AV
Alex V. Spiridonov

Для однобайтных чисел со знаком:

section code
..start:
mov si,data
mov ds,si
mov es,si
mov si,stack
mov ss,si
mov sp,st_head
mov si,c_data
mov di,x
mov cx,4
rep movsb

mov al,[x]
imul byte [a]
mov bx,ax
mov al,[b]
cbw
add ax,bx
cmp byte [x],5
jle OutResult
mov bx,ax
mov al,[x]
cbw
imul bx
mov bx,ax
mov al,[c]
cbw
add ax,bx
OutResult:
cwd
xor ax,dx
sub ax,dx
push ax
and dl,0Dh
or dl,20h
mov al,dl
int 29h
pop ax
call WriteInt
xor ah,ah
int 16h
mov ah,4Ch
int 21h

WriteInt:
push dx
mov bx,10
cwd
div bx
test ax,ax
jz WI2
call WriteInt
WI2:
mov al,dl
or al,30h
int 29h
pop dx
ret

section stack stack
resw 100h
st_head:

section data
c_data db 6,-2,3,5
absolute 300h
x resb 1
a resb 1
b resb 1
c resb 1

P.S. Есть ограничение на исходные данные. Результат не должен превышать 16 двоичных разрядов.

P.P.S. Почему бы вопросы по программированию не задавать в соответствующей категории?

Похожие вопросы
помогите решить задачу.
Помогите решить задачу!!!
Ассемблер. помогите решить!!!
Помогите решить задачу по ассемблеру
Задача на ассемблере
Пожалуйста решите задачу на Ассемблере
Помогите на ассемблера надо сделать задачу.
Помогите пожалуйста решить задачу на ассемблере в паскале
Помогите пожалуйста решить задачу в паскале на языке ассемблер
Задача ассемблер