START:
mov ah,1
int 21h ;入力
push ax ;入力文字ストック
push ax
mov ah,2
mov dl,':'
int 21h ;出力
pop ax
call BYTEHEX
call DISP
mov ah,2
mov dl,'h'
int 21h
mov ah,2
mov dl,'-'
int 21h
mov ah,2
mov dl,'>'
int 21h
pop ax ;入力文字ポップ
call REVERSE ;逆にする
mov al,dl
call BYTEHEX
call DISP
mov ax,4c00h
int 21h ;終了
DISP: ;AH,ALを表示
mov dx,ax
push dx
mov dl,dh
mov ah,2
int 21h ;10hの位表示
pop dx
mov ah,2
int 21h ;1hの位表示
ret
BYTEHEX: ;ALを表示できるように変換し、
;AHとALに格納する
mov ah,al
shr ah,4
and ax,0000111100001111b
add ax,3030h
cmp ah,'9'
jbe BYTEHEX_1
add ah,7
BYTEHEX_1:
cmp al,'9'
jbe BYTEHEX_2
add al,7
BYTEHEX_2:
ret
REVERSE:
mov cx,8
REVERSE_1:
sal al,1
rcr dl,1
loop REVERSE_1
ret
|