|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
;请问下面两段程序可以这样改吗?
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[bx] ; 段地址在cs中 指向字符串中的‘0’使得ah=30h(0的ASCII值是30h)
mov bx,0b800h
mov es,bx
mov es:[160*12+40*2],ah
mov bl,al ;bl=0eh
mov bh,0
mov al,table[bx] ; 段地址在cs中 指向字符串中‘e’
mov es:[160*12+40*2+2],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[bx]
mov bx,0b800h
mov es,bx
mov es:[160*12+40*2],ah
mov bl,al ;bl=0eh
mov bh,0
mov al,table[bx]
mov es:[160*12+40*2+2],al
pop es
pop bx
ret
code ends
end start
|
|