x86汇编---in/out指令

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

内容简介:参考资料: 微机原理《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为通用寄存器。但实际上芯片设计时,很多指令能操作的寄存器是有限制范围的。

多读官方文档手册


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

查看所有标签

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

算法学

算法学

哈雷尔 / 第1版 (2006年2月1日) / 2006年2月1日 / 38.0

本书的意图在于按序学习或研究,而不是作为一个参考。因而按照每章依赖于前面章节的结构组织本书,且流畅易读。第一部分预备知识中的大部分材料对于那些具有程序设计背景的人是熟悉的。无论是否恰当,本书包含了计算机科学家当前感兴趣的研究专题的简明讨论。这本教科书的书后有每章详细参考书目的注记,并通过“后向”指针把教科书中的讨论与相关文献联系起来。目前的版本包含大量习题,以及大约三分之一的题解。可用题解作为教科......一起来看看 《算法学》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具