Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Ассемблер. Ошибка: деления на 0 / 5 сообщений из 5, страница 1 из 1
15.03.2015, 19:56
    #38905355
iluxa1810
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ассемблер. Ошибка: деления на 0
Дано следующее задание:


Я написал следующий код:

автор.model small;
.data
a db 2
b db 2
c db 2
d db 15
e db 2
f dd ?
a1 dd ?
a2 dd ?
a3 dd ?
a4 dd ?
.code
.486
mov ax,@data
mov ds,ax
mov al,a
mov ah,b
add al,ah;(a+b)=al
movsx bx,al;(a+b)
Imul al;AX -(a+b)^2
imul bx;(A+B)^3
mov bx,dx
shl ebx,16
mov bx,ax
mov eax,2
imul ebx
mov a1,edx
mov a2,eax

mov al,c
mov ah,2
imul ah;AX=2*C
mov bx,ax
mov al,d
imul al;AX=D^2
sub BX,AX;BX=(2C-D^2)
movsx AX,a;WORD a
imul BX;DX:AX
mov bx,dx
shl ebx,16
mov bx,ax
mov edx,a1
mov eax,a2
add eax,ecx;<---
adc edx,ebx
mov a2,eax

mov al,a
;imul a; AX=A^2
;movsx bx,e
add al,e
mov ah,4
imul ah
mov cx,ax
mov eax,a2
;shl ecx,16
;mov cx,ax
idiv ecx
mov a3,edx
mov a4,eax

mov ah,4ch
int 21h
end
Программа валится на делении, хотя операнды у меня получаются, вроде, верные. В чем может быть проблема?
...
Рейтинг: 0 / 0
15.03.2015, 20:35
    #38905367
Вася Уткин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ассемблер. Ошибка: деления на 0
авторadd eax,ecx;<---
это
авторeax = eax + ecx;
ecx как был 0, так и остался :)
...
Рейтинг: 0 / 0
15.03.2015, 20:43
    #38905369
iluxa1810
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ассемблер. Ошибка: деления на 0
Вася Уткинавторadd eax,ecx;<---
это
авторeax = eax + ecx;
ecx как был 0, так и остался :)

Мне TASM показывает, что там делитель 16.
...
Рейтинг: 0 / 0
15.03.2015, 20:53
    #38905372
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ассемблер. Ошибка: деления на 0
idiv ecx в качестве делимого использует пару edx:eax
...
Рейтинг: 0 / 0
15.03.2015, 21:14
    #38905378
iluxa1810
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ассемблер. Ошибка: деления на 0
Изопропилidiv ecx в качестве делимого использует пару edx:eax

В EDX и EAX у меня данные в обратном коде.
Не понимаю, почему ошибка=(
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Ассемблер. Ошибка: деления на 0 / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]