Вывод значения регистра на экран. ассемблер
Там где вопросики стоят(???) нужно вывести на экран значение регистра ax=0006 и bx=0004, подскажите пожалуста как это сделать
message1 db '3nakov: ',13,10,'$'
message2 db 'Bykvak: ',13,10,'$'
...
EXIT:
mov dx,OFFSET message1;сообщение
mov ah,9 ;вывести
int 21h ;на экран
???
mov dx,OFFSET message2;сообщение
mov ah,9 ;вывести
int 21h ;на экран
???
MOV AX, 4C00H;завершение программы
INT 21H
...
Прежде всего, необходимо преобразовать число в строку.
А вам могу дать (не самую лучшую) реализацию этого преобразования,
а дальше - вы сами.
in:
еах = 32-битное число
ebx = основание системы счисления
edi = указатель на буфер-результат
out:
заполненный буфер
NumToASCII:
pushad
xor esi,esi
convert_loop:
xor edx,edx
div ebx
call HexDigit
push edx
inc esi
test eax,eax
jnz convert_loop
cld
write_loop:
pop eax
stosb
dec esi
test esi,esi
jnz write_loop
mov byte [edi],0
popad
ret
HexDigit :
cmp dl,10
jb .less
add dl,'A'
ret
.less :
or dl,'0'
ret