ВУЗ:
Составители:
66
and AL,AL
jz @@h4
; Проверка на диапазон '0'-'9'
cmp AL,'0'
jb @@Error
cmp AL,'9'
ja @@h1
sub AL,'0'
jmp short @@h3
@@h1: ; Проверка на диапазон 'A'-'F'
cmp AL,'A'
jb @@Error
cmp AL,'F'
ja @@h2
sub AL,'A'-10
jmp short @@h3
@@h2: ; Проверка на диапазон 'a'-'f'
cmp AL,'a'
jb @@Error
cmp AL,'f'
ja @@Error
sub AL,'a'-10
@@h3: ; Дописать к результату
; очередные 4 разряда справа
shl EBX,4
or BL,AL
inc CX
cmp CX,8
jbe @@h0
; Если в числе больше 8 цифр - ошибка
jmp short @@Error
@@h4: ; Успешное завершение - результат в EAX
mov EAX,EBX
jmp short @@End
@@Error:; Ошибка - обнулить результат
xor EAX,EAX
@@End: pop SI
pop CX
pop EBX
ret
ENDP HexToBin32
;************************************************
;* ПРИНЯТЬ С КЛАВИАТУРЫ НОВЫЙ АДРЕС ИЛИ КОМАНДУ *
;************************************************
PROC GetAddressOrCommand near
pushad
; Использовать при выводе белый цвет, черный фон
mov [TextColorAndBackground],WHITE
; Установить номер строки поля ввода
and AL,AL jz @@h4 ; Проверка на диапазон '0'-'9' cmp AL,'0' jb @@Error cmp AL,'9' ja @@h1 sub AL,'0' jmp short @@h3 @@h1: ; Проверка на диапазон 'A'-'F' cmp AL,'A' jb @@Error cmp AL,'F' ja @@h2 sub AL,'A'-10 jmp short @@h3 @@h2: ; Проверка на диапазон 'a'-'f' cmp AL,'a' jb @@Error cmp AL,'f' ja @@Error sub AL,'a'-10 @@h3: ; Дописать к результату ; очередные 4 разряда справа shl EBX,4 or BL,AL inc CX cmp CX,8 jbe @@h0 ; Если в числе больше 8 цифр - ошибка jmp short @@Error @@h4: ; Успешное завершение - результат в EAX mov EAX,EBX jmp short @@End @@Error:; Ошибка - обнулить результат xor EAX,EAX @@End: pop SI pop CX pop EBX ret ENDP HexToBin32 ;************************************************ ;* ПРИНЯТЬ С КЛАВИАТУРЫ НОВЫЙ АДРЕС ИЛИ КОМАНДУ * ;************************************************ PROC GetAddressOrCommand near pushad ; Использовать при выводе белый цвет, черный фон mov [TextColorAndBackground],WHITE ; Установить номер строки поля ввода 66
Страницы
- « первая
- ‹ предыдущая
- …
- 64
- 65
- 66
- 67
- 68
- …
- следующая ›
- последняя »