查看: 1016|回复: 0
打印 上一主题 下一主题

I/O指令

[复制链接]
跳转到指定楼层
沙发
发表于 2015-5-18 19:34:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[size=13.8461542129517px]由于I/O端口地址和内存单元地址是相互独立的,这些端口地址不能普通的访问内存指令来访问其信息,所以,在CPU的指令系统中就专门设置了I/O指令来存取I/O端口的信息。按功能分类来看,I/O指令应属于数据传送指令。
[size=13.8461542129517px]1、输入指令IN
[size=13.8461542129517px]输入指令IN的一般格式如下:
[size=13.8461542129517px]IN AL/AX, PortNo/DX
[size=13.8461542129517px]该指令的作用是从端口中读入一个字节或字,并保存在寄存器AL或AX中。如果某输入设备的端口地址在0~255范围之内,那么,可在指令IN中直接给出,否则,要把该端口地址先存入寄存器DX中,然后在指令中由DX来给出其端口地址。
[size=13.8461542129517px]例如:
[size=13.8461542129517px]INAL, 60H;从端口60H读入一个字节到AL中
[size=13.8461542129517px]INAX, 20H;把端口20H、21H按“高高低低”组成的字读入AX
[size=13.8461542129517px]MOVDX, 2F8H
[size=13.8461542129517px]INAL, DX;从端口2F8H读入一个字节到AL中
[size=13.8461542129517px]INAX, DX;把端口2F8H、2F9H按“高高低低”组成的字读入AX
[size=13.8461542129517px]2、输出指令OUT
[size=13.8461542129517px]输出指令OUT的一般格式如下:
[size=13.8461542129517px]OUT PortNo/DX, AL/AX
[size=13.8461542129517px]该指令的作用是把寄存器AL或AX的内容输出到指定端口。如果某输出设备的端口地址在0~255范围之内,那么,可在指令OUT中直接给出,否则,要把该端口地址先存入寄存器DX中,然后在指令中由DX来给出其端口地址。
[size=13.8461542129517px]例如:
[size=13.8461542129517px]OUT61H, AL;把AL的内容输出到端口61H中
[size=13.8461542129517px]OUT20H, AX;把AX的内容输出到端口20H、21H中
[size=13.8461542129517px]MOVDX, 3C0H
[size=13.8461542129517px]OUTDX, AL;把AL的内容输出到端口3C0H中
[size=13.8461542129517px]OUTDX, AX;把AX的内容输出到端口3C0H、3C1H中
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表