assume cs:code,ds:data
data segment
table db '0123456789ABCDEF' ;16进制的直接定址表
data ends
code segment
start:
mov ax,data ;将data段与ds关联
mov ds,ax
mov si,0
mov ax,2Bh ;输入要输出到屏幕的数值,类似数值转字符n2c
call showword
mov ax,4c00h
int 21h
showword:
push bx
push es
mov ah,al
mov cl,4
shr ah,cl ;右移四次
and al,00001111b;保护al数据
mov bl,ah
mov bh,0
mov ah,table[bx]
mov bl,al
mov al,table[bx]
push ax ;为保护ax中的数据,将其压栈
mov ax,0b800h
mov es,ax
pop ax ;出栈ax数据,使其正常传送到显存区
mov es:[160*12+40*2],ah
mov es:[160*12+40*2+2],al
pop es
pop bx
ret
code ends
end start