;---------Prg_7_3.asm----------------------
;Программа преобразования двузначного шестнадцатеричного числа
;в двоичное представление с использованием команды xlat.
;Вход: исходное шестнадцатеричное число; вводится с клавиатуры.
;Выход: результат преобразования в регистре al.
.data ; сегмент данных
message db 'Введите две шестнадцатеричные цифры,$'
tabl db 48 dup (0),0,1,2,3,4,5,6,7,8,9, 8 dup (0),
db 0ah,0bh,0ch,odh,0eh,0fh,27 dup (0)
db 0ah,0bh,0ch,odh,0eh,0fh, 153 dup (0)
.stack 256 ;сегмент стека
.code
;начало сегмента кода
proc main ;начало процедуры main
mov ax,@data ;физический адрес сегмента данных в регистр ax
mov ds,ax ;ax записываем в ds
lea bx,tabl ;загрузка адреса строки байт в регистр bx
mov ah,9
mov dx,offset message
int 21h ;вывести приглашение к вводу
xor ax,ax ;очистить регистр ax
mov ah,1h ;значение 1h в регистр ah
int 21h ;вводим первую цифру в al
xlat ;перекодировка первого введенного символа в al
mov dl,al
shl dl,4 ;сдвиг dl влево для освобождения места для младшей цифры
int 21h ;ввод второго символа в al
xlat ;перекодировка второго введенного символа в al
add al,dl ;складываем для получения результата
mov ax,4c00h ;пересылка 4c00h в регистр ax
int 21h ;завершение программы
endp main ;конец процедуры main
code ends ;конец сегмента кода
end main ;конец программы с точкой входа main
|