8.1.2 I/O指令
优质
小牛编辑
126浏览
2023-12-01
8.1.2 I/O指令
由于I/O端口地址和内存单元地址是相互独立的,这些端口地址不能普通的访问内存指令来访问其信息,所以,在CPU的指令系统中就专门设置了I/O指令来存取I/O端口的信息。按功能分类来看,I/O指令应属于数据传送指令。
1、输入指令IN
输入指令IN的一般格式如下:
IN AL/AX, PortNo/DX
该指令的作用是从端口中读入一个字节或字,并保存在寄存器AL或AX中。如果某输入设备的端口地址在0~255范围之内,那么,可在指令IN中直接给出,否则,要把该端口地址先存入寄存器DX中,然后在指令中由DX来给出其端口地址。
例如: | |||
IN | AL, 60H | ;从端口60H读入一个字节到AL中 | |
IN | AX, 20H | ;把端口20H、21H按“高高低低”组成的字读入AX | |
MOV | DX, 2F8H | ||
IN | AL, DX | ;从端口2F8H读入一个字节到AL中 | |
IN | AX, DX | ;把端口2F8H、2F9H按“高高低低”组成的字读入AX |
2、输出指令OUT
输出指令OUT的一般格式如下:
OUT PortNo/DX, AL/AX
该指令的作用是把寄存器AL或AX的内容输出到指定端口。如果某输出设备的端口地址在0~255范围之内,那么,可在指令OUT中直接给出,否则,要把该端口地址先存入寄存器DX中,然后在指令中由DX来给出其端口地址。
例如: | |||
OUT | 61H, AL | ;把AL的内容输出到端口61H中 | |
OUT | 20H, AX | ;把AX的内容输出到端口20H、21H中 | |
MOV | DX, 3C0H | ||
OUT | DX, AL | ;把AL的内容输出到端口3C0H中 | |
OUT | DX, AX | ;把AX的内容输出到端口3C0H、3C1H中 |
有关字符串的输入输出指令,请见5.2.11节中的介绍。