兰陵月 发表于 2016-10-18 11:43:44

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

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

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

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

多谢各位赐教。

人造人 发表于 2016-10-18 13:55:50

<穿越计算机的迷雾>
<编码的奥秘>
这两本书讲述了计算机的过去
知道了过去,也就知道了现在

兰陵月 发表于 2016-10-18 15:24:47

人造人 发表于 2016-10-18 13:55
这两本书讲述了计算机的过去
知道了过去,也就知道了现在

呵呵,谢谢!

bitravel 发表于 2019-9-19 18:14:34

实际上这是跟x86的指令编码中的寻址部分的编码格式一一对应的。
页: [1]
查看完整版本: 寻址方式中操作数所在位置的理解(指令中、寄存器中、存储器中)