所有栏目

cpu编址方式

已输入 0 字
优质回答
  • 寻址方式一般有如下七种:

    1.立即寻址

    立即(Immediate)寻址,就是在指令中使用的操作数是常数,这个常数就包含在指令中。以下几条指令都是立即寻址的例子:

    MOV AL,0

    MOV AX,190

    MOV EAX,-1

    MOV EAX,0FFFFFFFFH

    这些指令码中,都包含了立即数,如0,190,-1,0FFFFFFFFH。

    2.寄存器寻址

    寄存器(Register)寻址方式的操作数在CPU内部的寄存器中。使用寄存器寻址,CPU不用访问内存就可以取得或修改操作数。

    MOV BL,80 //目标操作数BL是寄存器寻址

    MOV EAX,EBX //源操作数EBX和目标操作数EAX都是寄存器寻址

    3.直接寻址(CPU寻找内存中的操作数)

    除了立即寻址和寄存器寻址方式外,其他的几种寻址方式的操作数都在内存单元中,寻址方式要说明的是CPU如何确定内存操 作数的地址,然后CPU再对该内存单元中的操作数进行处理。

    直接寻址(Direct)寻址就是指令中直接给出了操作数的地址。指令中使用变量时,就是直接寻址。

    MOV EAX,dVal

    MOV dVal,EBX

    MOV EAX,[4000H] //直接给出内存所在地址

    在翻译成机器指令后,变量是用它的地址而不是它的名字来表示的。地址外面加一对方括号,表示取这个地址中的内容。

    00401010 A1 11 40 40 00 MOV EAX,[00404011]

    00401015 89 1D 11 40 40 00 MOV [00404011],EBX

    CPU在执行指令的时候,可以直接从指令码中取出地址,而不必经过计算或其他操作,所以叫做直接寻址。

    4.寄存器间接寻址

    采用寄存器间接(Indirect)寻址方式的操作数的地址放在寄存器中。

    MOV ESI,00404011H //将内存地址保存到寄存器中

    MOV EAX,[ESI]

    注意,MOV EAX,ESI和MOV EAX,[ESI]的区别。

    在8086/8088/80286等16位的CPU中,只有4个寄存器能用做寄

    2023-10-24 12:17:13
  • 201的吗

    一种是统一编址,即端口地址空间与存储器地址空间合二为一的一种编址方式。这种编址方式使用将端口与存储器单元同样看待,使用存储器访问的指令进行 I/O 操作,因此指令多而灵活,缺点是端口地址要占用一部分存储器地址。

    另一种是端口独立编址,即端口地址空间与存储器地址空间各自独立的一种编址方式。这种编址方式只有那些具有 I/O 读写控制线的处理器系统(如 8086 系统)才能使用。它有独立的端口地址空间,因此不占用存储器地址空间,有独立的 IO 输入输出指令,但指令一般寻址方式较少,比较不灵活。

    2023-10-24 12:17:13
最新问题 全部问题