📄 汇008.txt
字号:
控制命令 命令的数值 功能描述
ESC @ 1BH 40H 初始化打印机
ESC 4/ESC 5 1BH 34H/1BH 35H 设定/取消斜体打印
ESC S 0/ESC S 1 1BH 53 0/1BH 53 1 设定上/下角标打印
ESC T 1BH 54H 取消上/下角标打印
ESC l n 1BH 6CH n 设定左边界,n为当前字符的宽度
3、DOS功能中的打印输出
在DOS操作系统中,INT 21H提供了一种打印输出的功能调用。其具体描述如下:
05H——向连接在LPT1端口上的打印机输出一个字符
40H——向先前打开的文件写入指定数量的字节,可以把打印机看作为标准的输出文件
有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅附录3之字符功能调用类。
4、BIOS中的打印输出
BIOS系统提供了中断17H来实现打印输出功能。其具体的功能如下:
00H——向指定的打印机输出一个字符
01H——初始化指定的打印机
02H——读取指定打印机的状态
有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅附录3之并行口服务。
5、打印输出的举例
例8.7 在每页的开始处打印“Assember Language”字符串,并空一行才打印其它内容。
解:显示解答
例8.8 当打印机不能正常打印(非硬件故障)时,提示使用者其原因,以便解决打印问题。
解:显示解答
8.3.4 串行通信口的中断功能
计算机的通信功能是现代计算机网络的最基本功能。如果计算机没有通信功能,计算机网络环境也就无从谈起。一台计算机与其它计算机(或设备)之间通信除了必要的物理连接之外,它们之间通信接口的功能就是另一个极其重要的功能模块。
从计算机通信的本质来看,通信就是发送或接受具有一定格式的二进制位。这些二进制位通过一些应用程序——如浏览器——的解释显示成具有不同表达形式的文字或图象。
为了方便实现计算机的通信功能,在系统的低层或操作系统中都有不同程度的支持,如:DOS、BIOS和NETBIOS等系统中都相应通信功能或中断服务。下面仅仅介绍在汇编语言程序中如何使用通信功能,有关通信功能的详细内容在《计算机通信与接口技术》课程会有更深入的论述。
1、DOS中的通信功能
INT 21H提供了对通信口COM1操作的功能调用。其具体描述如下:
03H——从辅助设备读入一个字符,该辅助设备的缺省值为COM1
04H——向辅助设备输出一个字符,该辅助设备的缺省值为COM1
有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅附录3之字符功能调用类。
2、BIOS中的通信功能
BIOS系统提供了中断14H来实现对通信端口的控制能。这些具体的功能如下:
00H——初始化通信口
01H——向通信口输出字符 02H——从通信口读入字符
03H——读取通信口状态
有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅附录3之串行口服务。
3、通信功能的应用举例
例8.9 把字符串"Hello, World"从COM1端口传输出去。在传输过程中,要求传输速率为9600波特,字长为8位,1位停止位,无齐偶校验。
解:
.MODEL SMALL
.DATA
MSG DB "Hello, World"
MLen EQU $-MSG
.CODE
.STARTUP
MOV AL, 0E3H ;0E3—9600、无齐偶校验、字长8位,1位停止位
MOV DX, 0
MOV AH, 0
INT 14H ;初始化通信口COM1
MOV BX, OFFSET MSG
MOV CX, MLen
MOV DX, 0
again:
MOV AL, [BX]
MOV AH, 1
INT 14H
TEST AH, 80H ;如果发送字符失败,继续发同一个字符,这里可能
JNZ again ;构成死循环。在实际工作过程中,还有其它考虑。
INC BX
LOOP again
.EXIT 0
END
例8.10 把从COM1端口读入的字符显示在屏幕上。如果通信端口数据未准备好,则程序处于等待状态;若传输出错,则用红色显示字符"?"。
解:
……
again:
MOV DX, 0
MOV AH, 3
INT 14H
TEST AH, 1H ;检测状态字节AH的最后一位,看数据是否准备好
JZ again
MOV DX, 0
MOV AH, 2
INT 14H ;从COM1端口读字符
TEST AH, 80H ;检测读字符是否成功
.IF ZERO? ;读字符成功
AND AL, 7FH ;屏蔽掉最高位,使之为字符
MOV BL, 15 ;正常颜色:白色
.ELSE
MOV AL, '?' ;显示字符"?"
MOV BL, 12 ;错误颜色:红字
.ENDIF
MOV BH, 0
MOV AH, 0EH
INT 10H
JMP again
……
8.3.5 鼠标的中断功能
鼠标是现在计算机系统中的一个常用输入设备,它为使用计算机带来了很大的方便,鼠标指针的各种表现形式还反映了系统(或应用程序)当前处于什么样的工作状态。许多计算机使用者为体现其个性化还选择各自喜欢的鼠标图形,所以,了解和掌握计算机系统对鼠标所提供的功能对理解鼠标的各种操作也是有一定的帮助。
1、鼠标中断的常用功能
BIOS系统提供了中断33H来实现鼠标中断功能,其常用的功能如下:
00H—初始化鼠标
01H—显示鼠标指针
02H—隐藏鼠标指针
03H—读取鼠标位置及其按钮状态
04H—设置鼠标指针位置
05H—读取鼠标按键信息
06H—读取鼠标按钮释放信息
07H—设置鼠标水平边界
08H—设置鼠标垂直边界
09H—设置图形鼠标形状 0AH—设置本文鼠标形状
0BH—读取鼠标移动计数
0CH—为鼠标事件设置处理程序
0FH—设置鼠标计数与象素比
10H—设置鼠标指针隐藏区域
14H—替换鼠标事件中断
18H—为鼠标事件设置替换处理程序
19H—读取替换处理程序的地址
1DH—为鼠标指针选择显示页
1EH—读取鼠标指针的显示页
有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅附录3之鼠标功能中断。
2、鼠标指针的设置
鼠标指针主要有二种表现形式:文本鼠标和图形鼠标。文本鼠标又分为软指针和硬指针。软指针是用各种字符来作鼠标指针,而硬指针是用方块光标的大小来表示鼠标指针,其效果类似于INT 10H之功能01H——设置光标类型。
图形鼠标的表现形式与文本鼠标相比就显得更加丰富多彩,可用各种不同的指针形状来反映系统当前所处的工作状态和所能进行的操作。在Windows操作系统及其应用程序中使用了很多指针形状的变化来表达各种有用信息。
鼠标的文本软指针与图形指针的形成过程相一致,它需要两部分信息:象素掩码和光标掩码。其指针形成过程如下:
1)、用象素掩码与当前鼠标所处位置的象素信息进行“逻辑与”运算;
2)、光标掩码与步骤1的运算结果再进行“异或”操作,该操作所得到的16×16位的0/1信息就构成了当前鼠标指针的形状。
假设象素掩码为全0。全0的象素掩码与屏幕上的显示信息“逻辑与”后,所得结果仍为全0,全0的运算结果再和“光标掩码”进行“异或”操作,这时,所得结果显然与“光标掩码”完全一样,所以,看到的鼠标指针形状就是光标掩码所表达的指针形状。
综合上述,可得结论:若象素掩码为全0,那么,鼠标的形状就是16×16位光标掩码所表示的指针形状,鼠标所到之处就看不到该区域内(16×16点阵范围)的其它显示信息。
在Windows操作系统及其应用程序中,在16×16点阵范围内,除了看不见被各种形状指针覆盖的部分之外,还能看见其它小区域,这是因为鼠标的“象素掩码”取其“光标掩码”的反相点阵所致。感兴趣的读者可验证或证明之。
(1)、硬指针的设置
设置鼠标硬指针的中断功能使用方式:
MOV BX, 1 ;硬指针
MOV CX, 01H ;鼠标硬指针的起始扫描线
MOV DX, 0FH ;鼠标硬指针的结束扫描线
MOV AX, 0AH ;设置文本鼠标指针
INT 33H
(2)、软指针的设置
设置鼠标软指针的中断功能使用方式:
MOV BX, 0 ;软指针
MOV DL, 'A' ;用字符'A'作为鼠标指针符号
MOV DH, 07FH ;置鼠标的颜色
MOV CX, 0 ;置象素位掩码
MOV AX, 0AH
INT 33H ;设置文本鼠标指针
(3)、图形指针的设置
设置鼠标软指针的中断功能使用方式:
……
PMask DW 16 dup(?) ;象素位掩码,PMask可以是~CMask
CMask DW 16 dup(?) ;光标掩码,二者紧相邻
……
MOV AX, DS
MOV ES, AX
LEA DX, PMask ;ES:DX=象素位掩码的起始地址
MOV BX, 0
MOV CX, 0 ;在鼠标指针范围内,(0,0)点为指示点
MOV AX, 09H
INT 33H ;设置图形鼠标指针
3、鼠标功能的应用举例
例8.11 在屏幕的右上角动态显示文本鼠标的位置,即:鼠标的任何移动都将马上显示其所处位置,按鼠标左键结束程序的运行。
解:显示解答
例8.12 编写可随时修改文本鼠标指针符号的程序,即要求:在程序运行过程中,随时在键盘上按什么字符,即以该字符为鼠标指针符号。
解:显示解答
读者可把例8.11和8.12结合在一起,使之:一方面,可动态显示鼠标的位置,另一方面,也可随时修改文本鼠标的指针符号。
改变图形鼠标指针是许多计算机使用者体现其个性的方法之一,读者可参考例8.12和前面的“图形指针的设置”部分的叙述,编写一个显示自己设计的鼠标指针的程序。在学习了有关文件操作知识之后,还可利用现有的鼠标指针文件来显示鼠标指针。
8.3.6 目录和文件的中断功能
中断21H提供了许多有关目录和文件操作的功能,其中常用的功能如下:
1、操作目录的常用功能
39H——创建目录 3BH——设置当前目录
3AH——删除目录 47H——读取当前目录
有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅附录3之目录控制功能。
2、用文件句柄操作文件的常用功能
3CH——创建文件 4EH——查找到第一个文件
3DH——打开文件 4FH——查找下一个文件
3EH——关闭文件 56H——文件换名
3FH——读文件或设备 57H——读取/设置文件的日期和时间
40H——写文件或设备 5AH——创建临时文件
41H——删除文件 5BH——创建新文件
42H——设置文件指针 67H——设置文件句柄数(最多文件数)
43H——读取/设置文件属性 6CH——扩展的打开文件功能
有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅附录3之文件操作功能。
3、用FCB操作文件的常用功能
0FH——打开文件 21H——随机读
10H——关闭文件 22H——随机写
13H——删除文件 23H——读取文件的大小
14H——顺序读 24H——设置相对记录数
15H——顺序写 27H——随机读块
16H——创建文件 28H——随机写块
17H——文件换名
有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅附录3之文件操作功能(FCB)和记录操作功能(FCB)。
4、磁盘绝对读写中断
中断25H——磁盘绝对读中断 中断26H——磁盘绝对写中断
有关中断功能的详细描述和调用参数在此从略,需要查阅者可参阅附录3之其它DOS中断。
5、系统标准设备的句柄
0000H——键盘 0001H——屏幕
0002H——错误显示(屏幕) 0003H——COM1
0004H——打印机
6、目录、文件功能的应用举例
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -