x86汇编---in/out指令

栏目: 编程语言 · 发布时间: 6年前

内容简介:参考资料: 微机原理《INTEL 80386 PROGRAMMER'S REFERENCE MANUAL 1986》8086为了区分访问内存和外设,硬件上有一个专门的引脚M/IO,指令集中则为访问外设单独提供了in/out指令。

参考资料: 微机原理

《INTEL 80386 PROGRAMMER'S REFERENCE MANUAL 1986》

8086为了区分访问内存和外设,硬件上有一个专门的引脚M/IO,指令集中则为访问外设单独提供了in/out指令。

《x86汇编---VGA显示》中为了关闭光标显示,有如下代码,这 两行代码读取外设 CRTC数据寄存器中的数据。

其中0x3D5为外设端口地址

x86汇编---in/out指令

为什么要按照上述书写呢? 如下几种修改办法是否可以呢?

1、是否可以直接用in al,0x3D5读外设?

x86汇编---in/out指令

2、dx为通用寄存器,这里外设地址是否可以用其它通用寄存器,比如cx存储?

x86汇编---in/out指令

3、读入的数据必须存放到al中吗?cl可以吗?

x86汇编---in/out指令

结论是不行!为什么呢?

其实 intel官方文档中已经描述的非常的清楚了,就如下6种情况(一定要多读官方文档) 可以很清晰看到:

1、直接用外设端口地址的话,只支持1个字节,即imm8;---------- 修改1不行,0x3D5为2个字节

2、如果用通用寄存器存地址,只支持DX;--------- 修改2不行

3、读入的数据只能放到AL、AX、EAX;--------- 修改3不行

x86汇编---in/out指令

多说两句:

通用寄存器并不通用,我们常说AX,BX,CX,DX为通用寄存器。但实际上芯片设计时,很多指令能操作的寄存器是有限制范围的。

多读官方文档手册


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Developer's Guide to Social Programming

Developer's Guide to Social Programming

Mark D. Hawker / Addison-Wesley Professional / 2010-8-25 / USD 39.99

In The Developer's Guide to Social Programming, Mark Hawker shows developers how to build applications that integrate with the major social networking sites. Unlike competitive books that focus on a s......一起来看看 《Developer's Guide to Social Programming》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

html转js在线工具
html转js在线工具

html转js在线工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具