| 汇编语言---程式设计 (4) |
| 责任编辑:admin 更新日期:2005-8-6 |
MOV [DI+2],CH
17: INC BYTE PTR[DI+3]
18: DEC BYTE PTR[DI+4]
19:EFGH2:
20: ..
其缓冲器的相对顺序,如下所示:
35:BUFA DW 0
36:BUFD DB 0
37:BUFB DW 0
38:BUFC DB 0
39:BUFE DB 0
40:BUFF DB 0
41:..
65:BUFG DW 0
66:BUFH DB 0
67:BUFI DW 0
68:BUFJ DB 0
69:BUFK DB 0
70:BUFL DB 0
凡对称形式或结构相同的程式,都可以采用这种技巧。
三、虚拟法:
对来处不同的资料,只要性质相同,都可以采用虚拟的技巧,将各种参数事先设妥,利用参数统一处理。
兹有一程式,系供萤幕画图之用,所有功能皆用游标完成之,特以此段处理游标的程式为例说明如后。
先虚拟各种功能及缓冲器:
区段位移: BBBLKMOV DB ? ;?= 位移值
十字游标: BBCROCSR DB ? ;?= 位移值
视框移动: BBFRMMOV DB ? ;?= 位移值
画笔作图: BBDRW DB ? ;?= 画笔宽
橡皮擦: BBDEL DB ? ;?= 橡皮宽
闪动游标: BBCSR DB ? ;?= 游标宽
文字显示: BBCHRDSP DB ? ;?= 字框值
游标移动值: BWMOV DW ? ;依当前功能先 ;设定
视框上限: BWTOP DW ? ;?= 设定值
视框下限: BWBTM DW ? ;?= 设定值
视框左限: BWLFT DW ? ;?= 设定值
视框右限: BWRGT DW ? ;?= 设定值
右界边际值: BWADDX DW ? ;?= 字或图宽
..
程式入口: CHKKEY DW CK47; 向左上移
DW CK48; 向上移
DW CK49; 向右上移
DW CRET; 无效
DW CK4B; 向左移
DW CRET; 无效
DW CK4D; 向右移
DW CRET; 无效
DW CK4F; 向左下移
DW CK50; 向下移
DW CK51; 向右下移
AX = 输入游标键扫瞄码
BP = 萤幕X向移动值
DX = 萤幕Y向移动值
ES:DI=萤幕记忆区位址
主流程: ( 已知 AL=0 AH=Scan-Code )
1:KEYIN:
2: SUB AH,47H ; =HOME
3: JB KEYRET ; 无效
4: CMP AH,11 ; >扫瞄码范围
5: JA KEYRET
6: MOV BL,AH
7: &nbs上一页 [1] [2] [3] [4] [5] 下一页 |
|
| 上一篇文章: 汇编语言---程式设计 (3) |
| 下一篇文章: 汇编语言---程式设计 (5) |
|
|
|
|