汇编语言 I/O 指令

本文内容

CPU 与外设间的信息交换是通过专门的输入输出指令实现的。8086/8088 CPU 提供下述两条指令。

  1. 输入指令

    格式:IN  AL/AX,PORT

    功能:将指定端口 PORT 的内容(字或字节)传送到累加器 AL 或 AX 中。即 AL/AX←(PORT)。

    受影响的标志位:没有。

    说明:PORT 为端口地址,当 PORT 是 0~255 时,可使用直接寻址,也可以使用间接寻址;当 PORT 是大于 255 时,必须使用间接寻址。用于间接寻址的寄存器一定是 DX,这是 DX 的一种特殊用法。采用 DX 寻址端口时,可借助于一段程序寻址一组连续的端口。目的操作数必须是累加器 AL 或 AX,外设是 8 位端口时,一定用 AL;16 位端口时,一定用 AX。

    例如:

    输入指令

  2. 输出指令

    格式:OUT  PORT,AL/AX

    功能:将累加器 AL 或 AX 的内容传送到指定的端口。即 (PORT)←AL/AX。

    说明:同 IN 指令。

    例如:

    输出指令

    I/O 指令是与外部设备进行通信的最基本途径,即使使用系统功能调用的例行程序,其例行程序本身也是用 IN 和 OUT 指令与外部设备进行数据交换的。例如,当程序请求从键盘输入字符时,系统将调用 ROM BIOS 的一个键盘例行程序,在这个例行程序中就有一条IN指令从端口 60H 输入一个字符到 AL 寄存器。

    使用 I/O 指令对端口地址进行直接的输入或输出,比调用系统功能调用例行程序更能提高数据的传送速度和吞吐量,但同时也要求程序员对计算机的硬件结构有一定的了解,其程序对硬件的依赖性也大,因此,对于一般的程序设计,还是尽可能使用系统功能调用。

请参阅

(完)

comments powered by Disqus

本文内容