【工学汇编语言程序设计初步】主要涉及的是在计算机编程中如何使用汇编语言进行系统功能调用,特别是与I/O(输入/输出)设备交互的方法。在编写汇编程序时,通常需要与外部设备如键盘、显示器进行通信,但不同计算机和设备可能有不同的控制方法。为了简化这一过程并提高通用性,操作系统提供了预编写的子程序,即系统功能调用,用户只需按照规定的方式设置参数,就可以调用这些系统功能。
**系统功能调用概述:**
系统功能调用是操作系统提供的一种服务,允许用户程序通过简单的指令调用操作系统内部的子程序,实现对硬件设备的管理和控制。在DOS系统中,这些调用通常通过软中断指令`INT n`来实现,其中`n`是中断类型号。例如,调用21H号中断可以访问DOS提供的各种功能,如设备管理、文件管理、目录管理和更多其他功能。
**系统功能调用的基本方法:**
1. **参数准备**:将所需的调用参数放入特定的寄存器。
2. **功能选择**:如果需要,将功能调用号(子程序编号)放入AH寄存器。
3. **子功能选择**(如有):将子功能调用号放入AL寄存器。
4. **调用DOS**:执行中断指令`INT 21H`来调用相应功能。
5. **检查结果**:在调用结束后,检查返回的参数是否正确。
**基本I/O调用举例:**
- **01H号调用**:从键盘读取并回显字符。读取的ASCII码存储在AL寄存器中,遇到Ctrl+C或Ctrl+Break会终止程序。
- **02H号调用**:在显示器上输出单个字符。字符的ASCII码在DL寄存器中,同样遇到特定组合键会结束程序。
- **09H号调用**:显示一个以“$”结尾的字符串。字符串的地址通过DS和DX寄存器传递给操作系统。
- **0AH号调用**:从键盘读取一个字符串直到用户按下回车键。需要预先定义一个缓冲区,其地址通过DS和DX寄存器传递。
例如,要显示字符串"Welcome to TianHe college!",需要在数据段定义该字符串,然后使用09H号调用将字符串地址传递给DOS。0AH和0DH分别代表换行符和回车符,用于在输出后将光标移动到下一行。
通过理解这些基本的系统功能调用,程序员能够编写出与硬件交互的汇编程序,从而实现诸如用户输入处理、屏幕输出等功能。这种能力对于学习和应用汇编语言编程至关重要,特别是在早期的计算机系统和嵌入式系统中。