请问直接寻址和寄存器间接寻址有什么关系呢

来源:百度知道 编辑:UC知道 时间:2024/06/04 07:47:38
我发现直接寻址的操作数是放在存储器中,寄存器间接寻址的操作数是放在寄存器中,其他还有什么区别呢,谢谢

不知道不要害人。
直接寻址,告诉你的是地址,也就是地址是直接告诉你的,所以你需要的操作数是在 存储器中,存放的地址就是指令告诉你的地址。
寄存器间接寻址,寄存器中存放的是地址,也就是说地址不是直接告诉你,而是存放在寄存器中,所以说操作数也是在存储器中,地址就是寄存器中的数。
比如 mov ah,[1000h] 这个源操作数是直接寻址,就是将数据段中有效地址为1000h中的数据传给ah。
而 mov ah,[bx],如果 bx=1000h,那么这条指令的作用和上面的指令作用一样。不过由于地址是在寄存器中,而不是直接给出,所以称其为寄存器间接寻址。 需要的操作数,同样存放在存储器中。

直接是直接找到的是你要的数据,间接是先找到你数据所在位置,也就是说指针,然后指向你要的数据。仅此而已。

所谓直接寻址,是指数据包发送时,需要指定数据包的目的地址值。这里的目的地址值分为2种:

1)64-bit地址,又称为MAC地址或IEEE地址。
每个ZigBee节点都应该有全球唯一的64位IEEE地址。这个地址需要向IEEE组织申请才能使用。通信时,将待发送的数据包的目的地址设为此64位IEEE地址,从而实现数据包的正确投递。

2)16-bit地址,即网络地址,或称为短地址。当一个ZigBee网络形成后,ZigBee网络内的每个节点,都会分配到一个16位的网络地址。通信时,将待发送的数据包的目的地址设为此16位网络地址。

而间接寻址,是使用本地绑定表(local binding table)的方式。协调器或者数据包发送方会保存这个绑定表,而这个绑定表能保存多个目的地。当需要传输数据包时,通过查询绑定表进行投递。

计算机是通过执行指令序列来解决问题的,因而每种计算机都有一组指令集提供给用户使用,一台计算机所具有的全部指令就称为该计算机的指令系统,不同的微处理器对应的指令系统也不全相同。
计算机中的指令由操作码字段和操作数字段两部分组成,操作码字段指示计算机所要执行的操作,而操作数字段则指出在指令执行操作的过程中所需要的操作数。指令的操作码字段在机器中的表示比较简单,只需对每一种操作指定确定的二进制