完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
ADR和LDR是ARM汇编语言中的两种指令,它们在功能和用途上有所不同。
1. ADR(Add the base register):这是一种用于将一个地址加载到寄存器中的指令。它将基址寄存器的值加上一个偏移量,然后将结果存储在目标寄存器中。ADR指令通常用于跳转到程序中的不同位置,或者加载一个常量的地址。 例如: ADR R0, label 这条指令将标签label的地址加载到R0寄存器中。 2. LDR(Load Register):这是一种用于将内存中的值加载到寄存器中的指令。它从指定的内存地址读取数据,并将数据存储在目标寄存器中。LDR指令可以用于加载立即数、地址、字或半字等。 例如: LDR R0, =0x12345678 这条指令将立即数0x12345678加载到R0寄存器中。 关于ARM汇编能反汇编的问题,这里的“反汇编”是指将汇编代码转换回高级语言代码(如C或C++)。虽然汇编代码已经是低级代码,但在某些情况下,开发者可能需要将汇编代码转换回高级语言代码,以便更好地理解程序的工作原理或者进行调试。 反汇编的过程通常涉及以下几个步骤: 1. 分析汇编代码,确定寄存器和内存的使用情况。 2. 根据汇编代码中的指令,推断出对应的高级语言语句。 3. 将汇编代码中的标签和地址替换为高级语言中的变量和函数名。 4. 重新组织代码结构,使其更接近原始的高级语言代码。 需要注意的是,反汇编并不总是完美的,因为汇编代码可能丢失了一些高级语言的语义信息。此外,某些优化技术可能会使反汇编变得更加困难。尽管如此,反汇编仍然是一种有用的工具,可以帮助开发者更好地理解程序的工作原理。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1935浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
728浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
567浏览 3评论
593浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
551浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 11:26 , Processed in 1.646289 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号