问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

LDR/STR和MOV有什么区别?ARM中的汇编指令貌似比51单片机的复杂啊

发布网友 发布时间:2022-04-23 09:39

我来回答

4个回答

热心网友 时间:2023-10-09 18:45

MOV是从一个寄存器或者移位的寄存器或者立即数的值传递到另外一个寄存器
从本质上是寄存器到寄存器的传递,为什么会有立即数,其实也是有*的立即数,不是所有立即数都可以传递的
这个立即数要符合一个8位数循环右移偶数位的取值
原因是,MOV本身就是一条32bit指令,除了指令码本身,它不可能再带一个可以表示32bit的数字,所以用了其中的12bit来表示立即数,其中4bit表示移位的位数(循环右移,且数值x2),8bit用来表示要移位的一个基数

可以看出,并不是所有数都可以表示成一个8bit数循环右移偶数位的

LDR和STR用来存取内存,关于"索引偏移",你是不是指pre-indexed addressing和post-indexed addressing
pre-indexed addressing是指地址经过运算不写回基址寄存器
post-indexed addressing则回写到基址寄存器

比如
pre-indexed addressing:
mov r1,#0
STR r0, [r1, #0x10] ;r1+0x10这个是所用的实际地址值,但是不回写入r1,在此句之后,r1=0

post-indexed addressing:
STR r0, [r1], #0x10 ;r1+0x10这个是所用的实际地址值,这个值回写入r1,此句之后,r1=0x10

还有一点是关于ldr的,其实ldr可以装载一个32bit立即数的说法并不确切,因为实际上并不是这一条语句装载了一个32bit立即数,比如
ldr r1, =0x12345678
其实真正的汇编代码是将某个地址的值传递给r1,就是说需要一个地址存放0x12345678这个立即数,实际上可以看作是一条伪指令
而且如果这个立即数可以用mov指令的形式来表达,会被编译器实际用mov来代替
比如:
ldr r1,=0x10
会变成
mov r1,#0x10

参考资料:ARM ArchitectureReference Manual

热心网友 时间:2023-10-09 18:46

LDR/STR 跟mov最大都差别是LDR/STR就是用来读跟写数据的,而mov是可以送数和读写数据...ARM的指令比较多,比51复杂,但是用C来写就差不多,就是寄存器多一点

热心网友 时间:2023-10-09 18:46

ARM是哈佛结构的只用LDR和STR等访问内存指令

热心网友 时间:2023-10-09 18:47

MOV是从一个寄存器或者移位的寄存器或者立即数的值传递到另外一个寄存器
从本质上是寄存器到寄存器的传递,为什么会有立即数,其实也是有*的立即数,不是所有立即数都可以传递的
这个立即数要符合一个8位数循环右移偶数位的取值
原因是,MOV本身就是一条32bit指令,除了指令码本身,它不可能再带一个可以表示32bit的数字,所以用了其中的12bit来表示立即数,其中4bit表示移位的位数(循环右移,且数值x2),8bit用来表示要移位的一个基数
可以看出,并不是所有数都可以表示成一个8bit数循环右移偶数位的
LDR和STR用来存取内存,关于"索引偏移",你是不是指pre-indexed addressing和post-indexed addressing
pre-indexed addressing是指地址经过运算不写回基址寄存器
post-indexed addressing则回写到基址寄存器
比如
pre-indexed addressing:
mov r1,#0
STR r0, [r1, #0x10] ;r1+0x10这个是所用的实际地址值,但是不回写入r1,在此句之后,r1=0
post-indexed addressing:
STR r0, [r1], #0x10 ;r1+0x10这个是所用的实际地址值,这个值回写入r1,此句之后,r1=0x10
还有一点是关于ldr的,其实ldr可以装载一个32bit立即数的说法并不确切,因为实际上并不是这一条语句装载了一个32bit立即数,比如
ldr r1, =0x12345678
其实真正的汇编代码是将某个地址的值传递给r1,就是说需要一个地址存放0x12345678这个立即数,实际上可以看作是一条伪指令
而且如果这个立即数可以用mov指令的形式来表达,会被编译器实际用mov来代替
比如:
ldr r1,=0x10
会变成
mov r1,#0x10
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何申办健康证、卫生许可证、营业执照、税务登记证?具体操作步骤是什么... 残步的意思是什么 ...出生,想以生辰八字五行来取个名字,请专家指教一下,谢谢 ...号8点生 男孩 五行缺木求各位大师起好记的名字来个小名 自考统计学概论和国民经济统计概论哪个难 国民经济统计概论2004年版图书简介 《我想有个家》这首歌在哪里可以免费下载? 从什么地方能找到吴子安的我想有个家铃声 平安喜乐什么意思 平安喜乐的意思 承欢记哪里可以看 什么是Cash_Basis_Accounting? 如何玩转微信公众号? 请问arm汇编指令中LDR和STR分别是哪几个单词的缩写,在网上查了老半天都没查到 为什么我的lol不能观战 西方会计中的名词:cash basis,voucher system,petty cash fun arm指令中mov和ldr有什么区别? 现在的lol为什么不能观战了? arm嵌入式LDR和STR的简单提问 cash basis 和accrual basis 分别包含了那些accounts? 为什么我LOL没法观战? 新版本的LOL为什么观战不了 微信公众如何使用教程的最新相关信息 cash basis的优点 微信公众平台如何使用 LOL如何观战,为什么有时候我观战不了 cash basis的好处 cashbasis的好处和使用范围 为什么英雄联盟观战不了 如何使用微信公众平台 Accrual basis和cash basis是怎么回事啊?最好中英文解释!谢谢!_百度知... 关于arm的汇编指令 str ldr 现付cash basis 与延付credit basis 的含义? arm中mov指令和ldr指令有何区别? 酷狗音乐大字版如何下载安装到台式电脑? ARM中LDR加载指令 做一次SPA需要多少钱啊? 酷狗大字版歌曲怎么下载到otg ldr,str指令的偏移形式有哪四种 预付的费用属于权责发生制还是收付实现制,怎样去理解它 以现金收到或付出为标准,来记录收入的实现和费用的发生,这项原则称为( )。 ARM 汇编align怎么用? SPA店里做水疗泡澡用的浴盆套上一次性塑料膜后不会传染病吧? 酷狗音乐大字版在不在联通大王卡免流范围内? 权责发生制和收付实现制的概念、区别及其各自适用范围 女性去spa会所需要注意什么? arm中strb能代替str么 on acash basis什么意思 ldr/str 指令的前索引偏移指令如何编写?指令是怎样操作的 酷狗音乐大字版在外境外如何使用? LDR伪指令与LDR加载指令的功能和应用有何区别