-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 |