Поиск:

Ответ в темуСоздание новой темы Создание опроса
> деление чисел (tasm) 
:(
    Опции темы
paSha_X
Дата 14.5.2008, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 5.12.2006
Где: Беларусь, Минск

Репутация: нет
Всего: 2



Помогите пожалуйста преобразовать этот код для tasm, итли может у кого есть алшоритм другой...
Код

masm
model small
stack 256
.data
del_b label byte
del dw 29876
deltdb 45
.code ;сегмент кода
main: ;точка входа в программу
хог ах, ах
mov ah,del_b    ;старший байт делимого в ah
mov al,del_b+l  ;младший байт делимого в al
div delt    ;в al - частное, в ah - остаток
end main    ;конец программы


PM MAIL WWW IM ICQ AOL YIM MSN   Вверх
anwe
Дата 14.5.2008, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 1
Всего: 23



Код

.model tiny
.code
org 100h
start:
;хог ах, ах ;зачем, если в него в следующей строке заносятся данные?
mov ax,del ;заносится сразу слово
xor dx,dx ;перед делением, потом тут окажется остаток
div delt
ret
del dw 29876
delt dw 45 ;если размерность будет байт, то и разделит байт из al, а не слово из ax
end start


Это сообщение отредактировал(а) anwe - 14.5.2008, 21:58
PM MAIL   Вверх
Mikl_
Дата 15.5.2008, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 9.11.2007

Репутация: 6
Всего: 14



paSha_X, можно и по-другому - если делитель известен заранее, тогда деление заменяют на умножение X/45=X*(65536/45)/65536=X*1456/65536
Код

.model tiny
.code
org 100h
start:
mov ax,del ;заносится сразу слово
mul delt ; результат в dx 
ret
del dw 29876
delt dw 1456 ;=65536/45
end start

PM MAIL   Вверх
paSha_X
Дата 15.5.2008, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 5.12.2006
Где: Беларусь, Минск

Репутация: нет
Всего: 2



Цитата(anwe @ 14.5.2008,  21:57)
Код

.model tiny
.code
org 100h
start:
;хог ах, ах ;зачем, если в него в следующей строке заносятся данные?
mov ax,del ;заносится сразу слово
xor dx,dx ;перед делением, потом тут окажется остаток
div delt
ret
del dw 29876
delt dw 45 ;если размерность будет байт, то и разделит байт из al, а не слово из ax
end start

anwe, пишет "переполнение деления" это что значит?
PM MAIL WWW IM ICQ AOL YIM MSN   Вверх
anwe
Дата 15.5.2008, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 1
Всего: 23



Цитата(paSha_X @  15.5.2008,  19:17 Найти цитируемый пост)
"переполнение деления" 

Прям так и пишет?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1079 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.