Главная »
Ассемблер » Конвертация UInt16 в строку
§ Код процедуры
Данная процедура выводит числа от -32768 до 32767, которые могут быть записаны в AX.
BX – указатель, где будет строка (временная)
- Для процедуры необходимо 5 символов места
DS:BX
itoa: lea si, [bx + 5]
mov [si], byte 0
test ax, $8000
jns .L1
neg ax
push ax
mov ah, 0Eh
mov al, '-'
int 10h
pop ax
.L1: mov bx, 10
.L2: xor dx, dx
div bx
add dl, '0'
dec si
mov [si], dl
and ax, ax
jne .L2
.L3: lodsb
and al, al
je .L4
mov ah, 0Eh
int 10h
jmp .L3
.L4: ret