目录 上一页 下一页 下一章

-138- PC机汇编语言实战精解

swich:









exit:


main
code


mov
int
sub
jb
cmp
ja
mov
int
jmp

mov
int
endp
ends
end

ah,0
16h
al,30h
exit
al,03h
exit
ah,5
10h
swich

ah,4ch
21h


main

;等待键盘输入

;输入的字符ASCII码减30H
;若ASCII码小于30H(不是数字键)结束
;若ASCII码大于33H(大于数字4)
;转EXIT退出
;利用10H中断的05功能
;将当前显示页设置为指定页
;转SWICH继续等待键盘输入

;结束程序




  这四个显示页有什么实际应用价值吗?可以这样设想,让程序在非当前的显示页中写入信息,而后将被写入的显示页切换为当前显示页,这样可以使整屏的信息在一瞬时"弹出(Popup)"于用户眼前,使得程序具有一种快速感。当然,有时我们可能感觉直接在当前显示页中写一整屏信息并不慢,这是因为在字符模式下我们要处理的数据量比较小造成的。如果显示图形,那么使用多个显示页轮换显示就会有快速的效果。
  另一个较为有用的功能是取得光标所在位置的字符ASCII码和属性的功能:
功能号:08H
用 途:取光标位置的字符及属性
参 数:BH=显示页号
调 用:INT 10H
返 回:AL=ASCII码
    AH=属性字节
  注意这个功能调用只在文本方式下工作,图形方式下无效。下面这个程序演示了这个功能调用的应用:
data

keymsg




current

data
segment
assume
db
db
db
db
db
db
db
ends

ds:data
'I--cursor UP',0dh,0ah
'J--cursor LEFT',0dh,0ah
'K--cursor RIGHT',0dh,0ah
'M--cursor DOWN',0dh,0ah
'Otherkey---EXIT to DOS',0dh,0ah,'$'
?
?



;定义一组说明性的文字




;存放光标当前的位置



Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章