Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод числа на FASM из 16 битного регистра. 
:(
    Опции темы
KPEHDEL
Дата 10.11.2010, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте. Написал программу на fasm которая делит число 1234 из регистров и посимвольно выволит:
Код

org 0x100

mov ax,1234
mov ch,10

l1:
div ch   ;Делим
mov bh,al      ;Кладём в bh

mov dl,ah
add dl,48      ;Прибовляем 0
mov ah,2
int 0x21


mov al,bh
mov ah,0
cmp al,0
ja l1


mov ah,8
int 21h
mov ah,0x4c
int 21h

msg db 10 dup ?,'$' ;отводим пустые байты                               

Теперь задача такова, нужно написать 16 битное деление, то есть сейчас используется 8 битный регистр, и программа не выведит число более 2300. Для этого нам нужно использовать деление dx:ax.
Пишу так:
Код

org 0x100

mov dx,1234
mov ax,10

l1:
div ax   ;Делим
mov bh,al      ;Кладём в bh

mov dl,ah
add dl,48      ;Прибовляем 0
mov ah,2
int 0x21


mov al,bh
mov ah,0
cmp al,0
ja l1


mov ah,8
int 21h
mov ah,0x4c
int 21h

msg db 10 dup ?,'$' ;отводим пустые байты                               

Это не правильный вариант, пожалуйста помогите написать правильно и понять.

Это сообщение отредактировал(а) KPEHDEL - 10.11.2010, 18:43
PM MAIL WWW ICQ   Вверх
tester3000
Дата 21.11.2010, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



div помещает в ax частное а в dx остаток 
Код

mov ax,1234h ; делимое
mov bx,10h     ; делитель 
cdq                  ; обнуляем dx
div bx              ; результат в dx:ax  (ax=0123h dx=0004h)   



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

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

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


 




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


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

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