关于以十六进制形式在屏幕中显示给定的byte型数据?
;请问下面两段程序可以这样改吗?assume cs:code
code segment
start:mov al,0eh
call wu
mov ax,4c00h
int 21h
;用al传递要显示的数据
wu: jmp short s
table db '0123456789ABCDEF' ,字符表
s: push bx
push es
mov ah,al
shr ah,1
shr ah,1
shr ah,1
shr ah,1 ;右移四得高四位值
and al,00001111b ;得低四位值
mov bl,ah
mov bh,0
mov ah,table ; 段地址在cs中 指向字符串中的‘0’使得ah=30h(0的ASCII值是30h)
mov bx,0b800h
mov es,bx
mov es:,ah
mov bl,al ;bl=0eh
mov bh,0
mov al,table ; 段地址在cs中 指向字符串中‘e’
mov es:,al
pop es
pop bx
ret
code ends
end start
问可以把上面绿色的代码改成下面的红色的代码吗?
assume cs:code
code segment
start:mov al,0eh
call wu
mov ax,4c00h
int 21h
;用al传递要显示的数据
wu: jmp short s
table db '0123456789ABCDEF'
s: push bx
push es
mov ah,0
mov bl,ah
mov bh,0
mov ah,table
mov bx,0b800h
mov es,bx
mov es:,ah
mov bl,al ;bl=0eh
mov bh,0
mov al,table
mov es:,al
pop es
pop bx
ret
code ends
end start
这个你自己可以调试的哦 小靚同学Leon 发表于 2014-8-30 12:55
这个你自己可以调试的哦
自己调试可以实现,但书上那样写有什么用意吗? skw 发表于 2014-8-31 22:22
自己调试可以实现,但书上那样写有什么用意吗?
1. 红色跟绿色部分效果是一样的。
2. 是不是为了体现shr指令的作用? 小靚同学Leon 发表于 2014-9-1 13:12
1. 红色跟绿色部分效果是一样的。
2. 是不是为了体现shr指令的作用?
呵呵!!应该是向你说的吧!谢谢 绿色的部分和红色的部分结果不一样啊 红色部分的结果是BX被清零 绿色的部分BX等于al高四位
页:
[1]