model small
.stack 100h
.286
.data
w dw 0ABCDh
msg db '0000 - OTBET',13,'$'
hex db '0123456789ABCDEF'
.code
start:
mov ax,@data
mov ds,ax ;ds=@data
mov cx,w ;cx=w
xor dx,dx ;dx=0
mov bx,cx
shr bh,4 ;терь в bh 'A' (10)
shr bl,4 ;терь в bl 'C' (12)
mov dl,bh ;записываем в dl, bh (dx=bh)
xor bh,bh ;bx=bl
;конвертим в ASCII
mov ah,hex[bx] ;тут думаю всё понятно
mov bx,dx ;dx=bx, t.k. dx нельзя использовать как индексатор
mov al,hex[bx]
;пишем результ в строку msg
mov msg[0],al
mov msg[2],ah
mov bx,cx
and bx,0F0Fh ;bh='B', bl='D'
mov dl,bh ;записываем в dl, bh (dx=bh)
xor bh,bh ;bx=bl
;аналогично...
mov ah,hex[bx]
mov bx,dx
mov al,hex[bx]
mov msg[1],al
mov msg[3],ah
;вывод на экран
mov ah,9
mov dx,offset msg
int 21h
;ждем нажатия любой клавиши
xor ax,ax
int 16h
;выход
mov ax,4c00h
int 21h
end start
Ассемблер. Нужна скорая помощь!!!
Помогите написать прогу:
В ячейке длиной в слово находится положительное число. Создать массив байтов, в каждом из которых будет записана шестнадцатиричная цифра числа.
Вот... думаю что так... правда комментарии особо не старался писать
Но все равно респект!!!