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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2011, 23:13   #1
sunny_alice
Пользователь
 
Регистрация: 16.04.2011
Сообщений: 46
Смущение Арифметические команды assembler

Проверьте, пожалуйста, программу на assembler`е

Вот задание: z=x/(12*y-6)+6
Разбиралась несколько часов с арифметическими командами, не уверена, что правильно получается. Пыталась проверить все вручную, еще больше запуталась. Нужно сделать для типа байт и для типа слово.
Пока непонятен один момент: 54h делим на 12h, а в отладчик записывается в ах:1200. Но и остальную часть программы просьба посмотреть на правильность. Заранее благодарю


Код:
title lab3
dat segment
	xb db 54h
	yb db 02h
	xw dw 14h
	yw dw 01h
	zb1 dw 1 dup(?)
	zb2 dw 1 dup(?)
	zw1 dw 1 dup(?)
	zw2 dw 1 dup(?),13,'$'
dat endS

cod segment
	assume cs:cod, ds:dat
 start: mov ax,dat
	mov ds,ax
	xor ax,ax
	

	mov al,yb
	mov bl,12
	mul bl
	
	xor cx,cx
	mov bx,6
	sub ax,bx
	sbb dx,cx

	div xb
	cbw
	
	mov cx,6
	xor bx,bx
	add ax,cx
	adc dx,bx
	mov word ptr zb1,dx
	mov word ptr zb2,ax

	mov ax,yw
	mov bx,12
	mul bx
	mov cx,dx
	
	xor cx,cx
	mov bx,6
	sub ax,bx
	sbb dx,cx

	div xw

	mov cx,6
	xor bx,bx
	add ax,cx
	adc dx,bx
	mov word ptr zw1,dx
	mov word ptr zw2,ax

	mov ah,4Ch
	int 21h
cod endS
end start
sunny_alice вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Арифметические операции Assembler aly-lucenko Помощь студентам 2 25.05.2011 11:06
Паскаль, арифметические выражения. netcher Помощь студентам 1 09.03.2009 15:48
Арифметические выражения spirit0k Общие вопросы C/C++ 0 26.10.2008 18:06