Здравствуйте. Написал программу на 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 ?,'$' ;отводим пустые байты
|
Это не правильный вариант, пожалуйста помогите написать правильно и понять. |