наявність в ньому символу. При
; перевірці, яка повертається в АХ інформація не видаляється з буфера: ZF = 1 - буфер порожній, ZF = 0 -
; в буфері є сісмволи
mov ah, 01h
int 16h
jz short @ @ loop ; Символ відсутня
mov ah, 00h ; Читання символу клавіатури в АХ (скан-код і ASCII-код) з
int 16h ; з видаленням з буфера. Очікуємо, якщо буфер порожній
cmp al, 1Bh ; Натиснуто Esc?
je short @ @ end ; Так, на вихід
jmp short @ @ loop ; Ні, продовжимо висновок анімації
@ @ end: pop es0, 3Bh, 22,0,24,79 Waiting < span align = "justify"> Bidec ax ; Збережемо знак преутвореного числа
mov cx, 6; Розмір буфера в байтах
Blank2: mov [byte bx], '' ; Очистимо буфер, тобто заповнимо його пробеламіbxBlank2
dec bx; Встановимо адресу останнього елемента буфера
mov di, 10 ; Введемо підставу десяткової системи числення
or ax, ax ; Встановимо прапор знака SF
jns trans2 ; Перейдемо до перетворення, якщо SF = 0
neg ax ; Змінимо знак
trans2: sub dx, dx ; Зробимо dx = 0
div di ; ax = quot (dx: ax/10), dx = rem (dx: ax/10) dl, '0 ' ; Сформуємо десяткову ASCII-цифру [byte bx], dl ; Занесемо в буфер bx ; Рух назад
or ax, ax ; Перетворення закінчено?
jnz trans2 ; Повторити, якщо АХ> 0
pop ax ; Відновити вихідне число,
or ax, ax ; з метою визначення його знака
jns out_trans2 ; Виходимо з підпрограми, якщо SF = 0
mov [byte bx], '-' ; Запишемо знак '-' для негативного числа
out_trans2: ret Bidec: ax, @ datads, ax es, ax; es ...