鱼C论坛

 找回密码
 立即注册
查看: 5593|回复: 3

[已解决]寻址方式中操作数所在位置的理解(指令中、寄存器中、存储器中)

[复制链接]
发表于 2016-10-18 11:43:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
MOV                BX,[1234H]               
直接寻址:操作数在存储器中,指令直接包含有操作数的有效地址。
MOV                BX,1234H                       
立即寻址:操作数就包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。主要用于给寄存器或存储单元赋储值。
MOV                DX,BX                       
寄存器寻址:操作数在CPU内部的寄存器中,指令中指定寄存器号。这种方式指令执行速度较快。
MOV                DX,[BX]                       
寄存器间接寻址:操作数在存储器中,操作数有效地址在SI、DI、BX、BP这四个寄存器之一中。
MOV                DX,[BX+1234H]       
寄存器相对寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器或变址寄存器的内容加上指令中给定的8位或16位位移量之和。
MOV                DX,[BX+DI]               
基址加变址寻址:操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容相加得到。
MOV                DX,[BX+DI+1234H]       
相对基址加变址寻址:操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容及指令中给定的8位或16位位移量相加得到。

操作数在指令中,操作数在寄存器中,操作数在存储器中该如何理解?

从CPU运行的角度来看,操作数在指令中是个什么情况?在该指令运行前它存放在哪里?它在内存里?还是在什么鸟地方?
从CPU运行的角度来看,操作数在寄存器中(CPU内部),是指程序从最初开始运行时,该数据就已经在寄存器中了吗?
从CPU运行的角度来看,操作数在存储器中(CPU外部),这个存储器是指什么?这个存储器应该是指内存吧?

多谢各位赐教。
最佳答案
2016-10-18 13:55:50
<穿越计算机的迷雾>
<编码的奥秘>
这两本书讲述了计算机的过去
知道了过去,也就知道了现在
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-10-18 13:55:50 | 显示全部楼层    本楼为最佳答案   
<穿越计算机的迷雾>
<编码的奥秘>
这两本书讲述了计算机的过去
知道了过去,也就知道了现在
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-18 15:24:47 | 显示全部楼层
人造人 发表于 2016-10-18 13:55
这两本书讲述了计算机的过去
知道了过去,也就知道了现在

呵呵,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-19 18:14:34 | 显示全部楼层
实际上这是跟x86的指令编码中的寻址部分的编码格式一一对应的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-5 16:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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