![]() | 第6章 文字输出与键盘输入 | -123- | |||||||||||||||||||
waitkey code |
push push mov int mov int mov int int pop pop ret endp ends end |
ax dx ah,0 16h ax,0e0dh 10h al,0ah 10h 10h dx ax main |
;保存将要使用的寄存器 ;利用16H中断的0号功能 ;从键盘接收字符 ;输出回车符 ;输出两个换行符 ;恢复寄存器 ;返回主程序 |
||||||||||||||||||
关于指令JC我们在第四章讨论JA/JB指令时略有提及,它实际是指令JB的另一个形式: | |||||||||||||||||||||
![]() |
助记符:JC(Jump if Carry) 用 途:依据CF标志状态转移 格 式:JC 目的地址 执 行:如果CF位为1则此指令完成转移,反之CF=0则不发生转移。 |
||||||||||||||||||||
在讨论指令"SHL"时曾经提到过移出寄存器的一位将进入CF标志位,在此程序里这个特性得到了应用。 关于CX寄存器中所谓"显示字符个数"这个参数的含义前面并未说明,通过这个程序我们对这个参数就能有所了解,这个参数表示待显示的字符所需重复显示的个数。运行这个程序之后还有一个问题值得注意:即当一串大写字母"A"出现在屏幕上后,光标究竟在什么地方? 前面使用0EH功能输出字符串时光标总是在最后一个字符的后面,而09H功能却正相反,光标在第一个字符下面闪烁,也就是说09H功能不会自动移动光标。这就给我们出了这样一个难题:如果需要在屏幕上光标位置处显示一个有属性的字符串,程序DISPSTR.ASM能行吗? DISPSTR.ASM |
|||||||||||||||||||||
data msg data code main |
segment assume db ends segment assume proc mov mov |
ds:data 'Take care,I want to sleep.',0 cs:code far ax,data ds,ax |
;初始化DS寄存器 |
||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |