· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› деление

Посл.отвђт Сообщенiе


Дата: Июл 15, 2003 22:14:44

Вопрос возник:
Есть в ax число от 0 до 99. Я хочу поиметь в ah - первую цифру, а в al - вторую. Делаю так:
mov ax,27 ; - мое число
mov cx,10
div cx
по идее, сейчас я имею то, что хочу, но это не так. В ah, скорее всего (но не всегда!) 2, а в al 0.
В чем моя ошибка?


Дата: Июл 15, 2003 22:24:01

А если так
mov al,27h
mov ah,al
and ah,0Fh
shr al,4
xchg ah,al


Дата: Июл 15, 2003 22:44:23

а ты попробуй так:
mov ax,27
mov cl,10
div cl
xchg ah,al


Дата: Июл 15, 2003 22:45:05

я так, вроде, пробовал, но не работало...
хотя я мог напутать со смещением и маской... я попробую твой метод, но мне также интересно, почему мой метод не пашет... но все равно спасибо.


Дата: Июл 15, 2003 22:48:06

А с какими числами работаем?
от 0h до 99h, или от 0d до 99d?


Дата: Июл 15, 2003 22:55:08

dz 3BePIOra
Если всё число в AX, то делитель должен выть 8-битным (cl, а не cx)

KiNDeR
А зачем xchg ah,al?


Дата: Июл 15, 2003 22:58:36

Quantum
IMHO, xchg там не нужен, а про cl я не знал... я смотрел в Юрове описание div'а, и пример посмотрел - там он cx юзал... Буду пробовать! Спасибо!

KiNDeR
Работаем с десятичной системой


Дата: Июл 15, 2003 23:05:16

Quantum
Я хочу поиметь в ah - первую цифру, а в al - вторую


Дата: Июл 15, 2003 23:07:54

dz 3BePIOra
...мне также интересно, почему мой метод не пашет...

для твоего метода делимое должно заноситься в DX:CX
и результат будет не в ah и al, а в AX и DX


Дата: Июл 15, 2003 23:09:16

ошибочка DX:AX


Дата: Июл 15, 2003 23:09:48

Есть специальная команда для этого - aam

mov al,27
aam


Дата: Июл 16, 2003 10:22:47

Спасибо всем за помощь!


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.065