灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2270回复:0

I/O指令

楼主#
更多 发布于:2012-09-10 18:56

由于I/O端口地址和内存单元地址是相互独立的,这些端口地址不能普通的访问内存指令来访问其信息,所以,在cpu的指令系统中就专门设置了I/O指令来存取I/O端口的信息。按功能分类来看,I/O指令应属于数据传送指令。

1、输入指令IN

输入指令IN的一般格式如下:

IN AL/AX, PortNo/DX

该指令的作用是从端口中读入一个字节或字,并保存在寄存器AL或AX中。如果某输入设备的端口地址在0~255范围之内,那么,可在指令IN中直接给出,否则,要把该端口地址先存入寄存器DX中,然后在指令中由DX来给出其端口地址。

例如:

INAL, 60H;从端口60H读入一个字节到AL中

INAX, 20H;把端口20H、21H按“高高低低”组成的字读入AX

MOVDX, 2F8H

INAL, DX;从端口2F8H读入一个字节到AL中

INAX, DX;把端口2F8H、2F9H按“高高低低”组成的字读入AX

2、输出指令OUT

输出指令OUT的一般格式如下:

OUT PortNo/DX, AL/AX

该指令的作用是把寄存器AL或AX的内容输出到指定端口。如果某输出设备的端口地址在0~255范围之内,那么,可在指令OUT中直接给出,否则,要把该端口地址先存入寄存器DX中,然后在指令中由DX来给出其端口地址。

例如:

OUT61H, AL;把AL的内容输出到端口61H中

OUT20H, AX;把AX的内容输出到端口20H、21H中

MOVDX, 3C0H

OUTDX, AL;把AL的内容输出到端口3C0H中

OUTDX, AX;把AX的内容输出到端口3C0H、3C1H中

喜欢0 评分0
游客

返回顶部