Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2011, 21:39   #1
Destiny265
 
Регистрация: 23.09.2010
Сообщений: 4
По умолчанию ассемблер. Не могу понять где ошибка.

Вычислить выражение:

Res:
a/b+c-d*a , если a*d<0
b-(c+a/d)*b, если a*d>=0

где a,b,RES размером два байта,
c,d - байт

Код:
        jmp	        begin

a	dw	200
b	dw	10
c	db	120
d	db	2
res	dw	0
begin:
	mov	bx,b
	mov	al,d
	cbw
	imul	a
	mov	cx,ax
	cmp	cx,0
	jl	res1
	mov	ax,a
	idiv	d
	add	al,c
	cbw	
	imul	bx ;неправильно умножает

	sub	bx,ax
	mov	res,bx
	jmp	halt
res1:	mov	ax,a
	cwd
	idiv	b
	mov	bx,ax
	mov	al,c
	cbw
	add	bx,ax
	sub	bx,cx
	mov	res,bx

halt:	jmp	0	;$E
Пишу в Winter(I8086). Файл тестов прилагаю, не могу понять почему не проходить последний (значения последнего теста представлены в коде программы). Само место, где предполагаю ошибку я выделил в тексте.
Вложения
Тип файла: txt tests.tst.txt (2.1 Кб, 113 просмотров)
Destiny265 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка в коде. не могу понять где. hottabi4 Помощь студентам 4 10.06.2011 19:02
Не могу понять где ошибка. Демик Общие вопросы C/C++ 4 27.05.2011 13:31
не могу понять где ошибка Neon-z PHP 13 22.01.2011 16:15
Не могу понять где ошибка Азиза Общие вопросы C/C++ 1 11.01.2011 14:03
Не могу понять, где ошибка( IROKEZ Общие вопросы C/C++ 4 16.12.2010 21:00