关于王爽汇编语言第二版的一个定址表的问题
子程序源代码如下:(是向屏幕输出0~F,制作的表)showbyte:jmp short show
table db '0123456789ABCDEF' ;字符表
show:push bx
push es
mov ah,al
shr ah,1
shr ah,1
shr ah,1 ;右移4位,AH中得到高4位的值
shr ah,1 ;al中为低4位的值
mov bl,ah
mov bh,0
mov ah,table[bx] ;用高4位的值做相对于table的偏移,取得对应的字符
mov bx,0b800h ;写入显存
mov es,bx
mov es:[160*12+40*2],ah
mov bl,al
mov bh,0
mov al,table[bx] ;用低4位的值做相对于table的偏移,取得对应的字符
mov es:[160*12+40*2+2],al
pop es
pop bx
ret
在说到这个问题的时候,书本并没有给出完整的程序,只有这一个子程序。
问题1:AX的值并未给出,为什么要将AL赋给AH?
问题2:为什么要右移4位?
问题3:到底程序是如何建立了映射关系?
感谢各位大大抽时间给小弟解答!