MOV、LDR加载指令和LDR伪指令的区别
2014-06-25 20:31
246 查看
1、MOV指令
MOV指令的语法格式:
Rd只能是寄存器
Op2寄存器或立即数
Op2为寄存器时:
MOV R0, R1
MOV R0, R1, LSL #4 ;将R1中的值逻辑左移4位放入R0
Op2为立即数
立即数就只能由0到255中得某个数经过循环右移偶数次(包含0次)得到
MOV R0,#0x20 ;正确
MOV R0,#0x200 ;正确
MOV R0,#0x201 ;不可
2、LDR伪指令
那么如果想给R0赋0x201怎么办呢?可以使用伪指令LDR,如果LDR第二个 操作数前有=,则是LDR伪指令
LDR R0,=#0x201 ;它会被汇编器转换成一条“相对PC的加载指令”
常用LDR为指令向某个内存地址写入一个值
;将5写入内存0x20000000处
COUNT EQU 0x20000000
LDR R0, =COUNT
MOV R1, #5
STR R1, [R0]
3、LDR加载指令
LDR指令用于从内存中读取数据放入寄存器
COUNT EQU 0x20000000
LDR R0, =COUNT
LDR R1, [R0]
MOV指令的语法格式:
Rd只能是寄存器
Op2寄存器或立即数
Op2为寄存器时:
MOV R0, R1
MOV R0, R1, LSL #4 ;将R1中的值逻辑左移4位放入R0
Op2为立即数
立即数就只能由0到255中得某个数经过循环右移偶数次(包含0次)得到
MOV R0,#0x20 ;正确
MOV R0,#0x200 ;正确
MOV R0,#0x201 ;不可
2、LDR伪指令
那么如果想给R0赋0x201怎么办呢?可以使用伪指令LDR,如果LDR第二个 操作数前有=,则是LDR伪指令
LDR R0,=#0x201 ;它会被汇编器转换成一条“相对PC的加载指令”
常用LDR为指令向某个内存地址写入一个值
;将5写入内存0x20000000处
COUNT EQU 0x20000000
LDR R0, =COUNT
MOV R1, #5
STR R1, [R0]
3、LDR加载指令
LDR指令用于从内存中读取数据放入寄存器
COUNT EQU 0x20000000
LDR R0, =COUNT
LDR R1, [R0]
相关文章推荐
- MOV指令、LDR指令、LDR伪指令之间的区别
- ARM指令 LDR、LDR伪指令、MOV的区别
- LDR伪指令和LDR指令及MOV指令的区别
- MOV指令、LDR指令、LDR伪指令之间的区别
- arm指令中mov和ldr及ldr伪指令的区别
- LDR 和MOV 指令区别
- LDR指令、LDR伪指令、ADR伪指令区别
- 转ldr和mov指令的区别(转)
- ARM中LDR伪指令与LDR加载指令
- ARM中LDR伪指令与LDR加载指令
- arm指令中mov和ldr的区别
- LDR伪指令与LDR加载指令
- ARM中LDR伪指令与LDR加载指令
- arm指令中mov和ldr有什么区别?
- ARM汇编—ldr加载指令和ldr伪指令的用法
- ARM中LDR伪指令与LDR加载指令
- arm指令中mov和ldr有什么区别
- LDR伪指令LDR数据传送指令的区别
- ARM中LDR伪指令与LDR加载指令
- arm汇编—ldr加载指令,ldr伪指令