Здравствуйте, помогите исправить ошибки, я уже два дня долбаюсь - ничего не выходит, может кто разбирается в ассемблере?
Нужно сделать программу, которая путем арифметических действий над a и b находит x, y, k, z ; a+b=k; a-b=x; a*b=y; a/b=z. a=-213, b=98 вот текст того, до чего я дошел:
%TITLE "Pr.robota #14; variant 05; "
IDEAL
MODELsmall
STACK256
DATASEG
exCodeDB0
aDW-219
bDw92
k DW ;-127
xDW ;-311
yDW ;-20148
z Dw ;-2.37
CODESEG
Start:movax,@data ;14
movds,ax ;15
movds,ax
movax,[a] ;a в регистр ax
add;к содержимому ax (к al) прибавили значение b
mov[k],ax;ax-> в память k
movax,;b в регистр al (в регистре ax)
movbx,ax;переместили содержимое ax в bx
movax,[a];a в регистр ax
sub;из содержимого ax вычли содержимое bx
mov[x],ax;ax-> в память x
movax,[a];a в регистр ax
imulax,;ax умножаем на bx (Если результат мал и умещается в одном
;регистре (то есть если CF= OF= 0), то содержимое
;регистра dx(старшей части) является расширением знака —
;все его биты равны старшему биту (знаковому разряду)
;младшей части результата. )
mov[y],ax;ax-> в память y, в dx поместился знак значимого бита
movax,[a];a в регистр ax
idiv;ax делим на
mov[z],al;ax-> в память z ah-остаток
inc[k];к значеню k прибавили 1
inc[x];к значеню x прибавили 1
dec[y];из значеня y вычли 1
decah;из регистра dx(отстаток от деления) вычли 1
Exit:movah,4Ch;Функция DOS: выход из программы
moval,[exCode];Возврат значения кода выхода
int21h;Вызов DOS. Остановка программы
ENDStart;Конец программы /точка входа