4.1ARM处理器寻址方式 ·寻址方式分类 寻址方式是根据指令中给出的地址码字段来实 现寻找真实操作数地址的方式。ARM处理器具有9 种基本寻址方式。 1.寄存器寻址; 2.立即寻址; 3.寄存器移位寻址; 4.寄存器间接寻址; 5.基址寻址; 6.多寄存器寻址; 7堆栈寻址; 8.块拷贝寻址; 9.相对寻址
4.1 ARM处理器寻址方式 • 寻址方式分类 寻址方式是根据指令中给出的地址码字段来实 现寻找真实操作数地址的方式。ARM处理器具有9 种基本寻址方式。 1.寄存器寻址; 2.立即寻址; 3.寄存器移位寻址; 4.寄存器间接寻址; 5.基址寻址; 6.多寄存器寻址; 7.堆栈寻址; 8.块拷贝寻址; 9.相对寻址
4.1ARM处理器寻址方式 ·寻址方式分类一寄存器寻址 操作数的值在寄存器中,指令中的地址码字段 指出的是寄在器编号、指今执行时直接取出寄存器 值来操 MOV R1 SUB RO R2 0xAA RO R1 0xAA MOV 1 R1,R2
操作数的值在寄存器中,指令中的地址码字段 指出的是寄存器编号,指令执行时直接取出寄存器 值来操作。寄存器寻址指令举例如下: MOV R1,R2 ;将R2的值存入R1 SUB R0,R1,R2 ;将R1的值减去 0xAAR2的值,结果保存到R0 0x55 R2 R1 4.1 ARM处理器寻址方式 • 寻址方式分类——寄存器寻址 MOV R1,R2 0xAA
4.1ARM处理器寻址方式 ·寻址方式分类一立即寻址 立即寻址指令中的操作码字段后面的地址码部 分即和是燥作数太身、也就是说、敖据就包会在指令 当 程序存储 (这 MOV R0,#0xFF00 SUE 从代码中获得数据 MOV RO 0xFF0O MOV RO,#0xFF00
立即寻址指令中的操作码字段后面的地址码部 分即是操作数本身,也就是说,数据就包含在指令 当中,取出指令也就取出了可以立即使用的操作数 (这样的数称为立即数)。立即寻址指令举例如下: SUBS R0,R0,#1 ;R0减1,结果放入R0,并且影响标志位 MOV R0,#0xFF R0000 0x55 ;将立即数0xFF000装入R0寄存器 MOV R0,#0xFF00 程序存储 4.1 ARM处理器寻址方式 • 寻址方式分类——立即寻址 MOV R0,#0xFF00 0xFF00 从代码中获得数据
4.1ARM处理器寻址方式 ·寻址方式分类一寄存器移位寻址 寄存器移位寻址是ARM指令集特有的寻址方式。 当第2个操作数是寄在器移位方式肿、第2个寄存器 操 作 逻辑左移3位 MOV R2 0x01 0x08 RO 0x08 AND 相 MOV RO,R2,LSL #3
寄存器移位寻址是ARM指令集特有的寻址方式。 当第2个操作数是寄存器移位方式时,第2个寄存器 操作数在与第1个操作数结合之前,选择进行移位操 作。寄存器移位寻址指令举例如下: MOV R0,R2,LSL #3 ;R2的值左移3位,结果放入R0, ;即是R0=R2×8 ANDS R1,R1,R2,LSL R3 ;R2的值左移R3位,然后和R1相 ;“与”操作,结果放入R1 R0 0x55 R2 0x01 4.1 ARM处理器寻址方式 • 寻址方式分类——寄存器移位寻址 MOV R0,R2,LSL #3 0x08 0x08 逻辑左移3位
4.1ARM处理器寻址方式 ·寻址方式分类一寄存器间接寻址 寄存器间接寻址指令中的地址码给出的是一个 通用寄在器的编号、所雲的操作数保在在寄存器指 定针 指 0x40000000 0xAA LDR R2 0x40000000 R1 0xAA SWE LDR R1,[R2]
寄存器间接寻址指令中的地址码给出的是一个 通用寄存器的编号,所需的操作数保存在寄存器指 定地址的存储单元中,即寄存器为操作数的地址指 针。寄存器间接寻址指令举例如下: LDR R1,[R2] ;将R2指向的存储单元的数据读出 ;保存在R1中 SWP R1,R1,[R2] ;将寄存器R1的值和R2指定的存储 ;单元的内容交换 R1 0x55 R2 0x40000000 0x40000000 0xAA 4.1 ARM处理器寻址方式 • 寻址方式分类——寄存器间接寻址 LDR R1,[R2] 0xAA