Арифметические операции в ассемблере
Добавлено: 07 сен 2013, 18:27
Здравствуйте ! Нуждаюсь в Вашей помощи .
Пытаюсь 1-ый раз написать программу на ассемблере .
Посмотрите , пожалуйста , так ли я решаю задание , есть ли ошибки ? И правильные ли комментарии ? Я немного запутался уже что и куда сохраняется , так как новичок совсем .
Не могу понять на счёт деления , остатка . Если сможете , объясните, как с ним работать .
Буду очень благодарен Вашим ответам !
;найти (b-d*e)/(a-c)
;a=6
;b=22
;c=95
;d=2410
;e=1995
title Proga1
.386
.model flat
.data ;определение данных
a db 5
b db 22
c db 95
d dw 2410
e dw 1995
res dw 0 ;результат
.code ;начало сегмента команд
Begin:
mov ax, d
mul ax,e ; умножение d*e , результат сохраняется в регистре ax
mov ebx, b ; помещаем в регистр ebx значение b
sub ebx,ax ; вычитание b-d*e, результат сохраняется в регистре ebx
mov bx, a ;помещаем в регистр bx значение a
sub bx,c ;вычитаем a-c , результат сохраняется в регистре bx
Пытаюсь 1-ый раз написать программу на ассемблере .
Посмотрите , пожалуйста , так ли я решаю задание , есть ли ошибки ? И правильные ли комментарии ? Я немного запутался уже что и куда сохраняется , так как новичок совсем .
Не могу понять на счёт деления , остатка . Если сможете , объясните, как с ним работать .
Буду очень благодарен Вашим ответам !
;найти (b-d*e)/(a-c)
;a=6
;b=22
;c=95
;d=2410
;e=1995
title Proga1
.386
.model flat
.data ;определение данных
a db 5
b db 22
c db 95
d dw 2410
e dw 1995
res dw 0 ;результат
.code ;начало сегмента команд
Begin:
mov ax, d
mul ax,e ; умножение d*e , результат сохраняется в регистре ax
mov ebx, b ; помещаем в регистр ebx значение b
sub ebx,ax ; вычитание b-d*e, результат сохраняется в регистре ebx
mov bx, a ;помещаем в регистр bx значение a
sub bx,c ;вычитаем a-c , результат сохраняется в регистре bx