MDK ARM环境下的伪指令的测试

这篇具有很好参考价值的文章主要介绍了MDK ARM环境下的伪指令的测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

测试目标:

测试代码:

1. start.s

2. align.s

测试结果:

1 .ldr伪指令的测试结果:

2 .align伪操作测试结果:

结果分析:


测试目标:

  1. 熟悉ARM处理器的伪指令,本次实验主要来练习ldr伪指令和align伪操作的使用。
  2. 理解ARM处理器伪指令的功能,并学会分析汇编语言代码。

测试代码:

1. start.s

area init,code,readwrite

 entry

start

ldr r0,=0x7000000

orr r0,r0,#0x13

mcr p15,0,r0,c15,c2,4



ldr r0,=0x7e004000

mov r1,#0

str r1,[r0]



ldr r1,=0x7e000020

mov r0,#0x1000

str r0,[r1]



ldr r1,=0x7e000024

mov r0,#0

str r0,[r1]

halt

b halt

 end

2. align.s

 area init,code,readwrite

 entry

start

mov r1,r0

mov r0,#12

ldr r4,src

ldr r3,=src



ldr r5,str

ldr r6,=str

ldr r7,str

src

dcd 7777

str

dcd 0x33f80000

dcb 0x88

dcb 0x77

align

reset

mov r8,#0

end

测试结果:

1 .ldr伪指令的测试结果:

MDK ARM环境下的伪指令的测试,arm学习,arm开发,学习

2 .align伪操作测试结果:

MDK ARM环境下的伪指令的测试,arm学习,arm开发,学习

结果分析:

1.LDR伪指令是将一个32位的常数或者一个地址值读取到寄存器中,可以看作是加载寄存器的内容。由图1可知LDR伪指令替代成具有相同功能的thumb指令,加载的常数不符合MOV或MVN指令立即数的要求,汇编器将常量放入内存文字池,并使用一条程序相对偏移得LDR指令从内存文字池读出常量。

2..align的作用范围只限于紧跟它的那条指令或者数据,而接下来的指令或者数据的地址由上一条指令的地址和其长度决定。由图2可知align下紧跟的指令的PC值是十六进制的28,是以4的倍数对齐。文章来源地址https://www.toymoban.com/news/detail-756525.html

到了这里,关于MDK ARM环境下的伪指令的测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ARM64 常见汇编指令学习 13 -- ARM 汇编 ORG 伪指令学习】

    上篇文章:ARM64 常见汇编指令学习 12 – ARM 汇编函数 的学习 下篇文章:ARM64 常见汇编指令学习 14 – ARM 汇编 .balign,.balignw,.balign 伪指令学习 在ARM汇编中,\\\" org \\\"是一个汇编器伪指令,用于设置下一条指令的装入地址。\\\" org \\\"后面跟着的是一个表达式,这个表达式的值就是下一条

    2024年02月14日
    浏览(42)
  • 【ARM64 常见汇编指令学习 16 -- ARM64 SMC 指令】

    上篇文章:ARM64 常见汇编指令学习 15 – ARM64 标志位的学习 下篇文章:ARM64 常见汇编指令学习 17 – ARM64 BFI 指令 在ARMv8架构中,同步异常主要包括以下几种: Undefined Instruction :未定义指令异常,当处理器尝试执行一条未定义的指令时会触发。 Supervisor Call (SVC) :这是一种特殊

    2024年02月13日
    浏览(43)
  • 【ARM64 常见汇编指令学习 14 -- ARM 汇编 .balign,.balignw,.balign 伪指令学习】

    上篇文章:ARM64 常见汇编指令学习 13 – ARM 汇编 ORG 伪指令学习 下篇文章:ARM64 常见汇编指令学习 15 – ARM 标志位的学习 .balignl 是一个伪操作符,伪操作符的意思就是机器码里,并没有一个汇编指令与其对应,是编译器来实现其功能的。. balignl 是 .balign 的变体。 .balignl 完整

    2024年02月14日
    浏览(39)
  • 【ARM64 常见汇编指令学习 12 -- ARM 汇编函数 的学习】

    上篇文章:ARM64 常见汇编指令学习 11 – ARM 汇编宏 .macro 的学习 下篇文章:ARM64 常见汇编指令学习 13 – ARM 汇编 ORG 伪指令学习 ARM汇编中的函数定义并不像高级语言那样有特定的语法,但通常可以通过 标签(label) 和 子程序调用指令 (如BL,BLX) 来实现类似于函数的功能。 例如

    2024年02月14日
    浏览(42)
  • 物联网|ARM|Keil同时安装Keil的C51、C251和MDK|增加V5编译器|物联网开发系列课程之零基础玩转Cortex-M系列CPU-学习笔记(1)

    1.物联网的定义 利用局部网络或互联网等通信技术把传感器、控制器、机器、人员和物等通过新的方式联在一起,形成人与物、物与物相联,实现信息化、远程管理控制和智能化的网络。 2.物联网的组成 3.物联网应用举例智能家居 1物联网的数据源头 2物联的局域网络源头 1

    2024年02月05日
    浏览(68)
  • 【ARM 常见汇编指令学习 5 -- arm64汇编指令 wzr 和 xzr】

    上篇文章:ARM 常见汇编指令学习 4 – ARM64 比较指令 cbnz 与 b.ne 区别 下篇文章:ARM 常见汇编指令学习 6 - bic(位清除), orr(位或), eor(异或) ARMv8 在硬件层名引入了一个新的 zero 寄存器 : XZR (64-bits), WZR (32-bits)。比如要将某一变量赋值为0x0, 由于ARM不允许直接操作内存单元上的数据

    2024年02月15日
    浏览(76)
  • mujoco相关环境在MacOs Arm芯片下的安装

    借鉴了Macbook M1 安装 mujoco 和 mujoco-py - KylinChen | Blog ,并补充了一些安装中的细节与错误fix办法 我的环境:Macbook M2 pro; Mac OS 14.1.1 (23B81); python==3.8.18 这里主要讲按照上文安装时出现的问题与解决办法,并假设gym已经装了。 1. 安装homebrew  没什么问题 2. 安装miniforge 没什么问题

    2024年01月23日
    浏览(42)
  • 【ARM64 常见汇编指令学习 20 -- ARM 指令 .include与 .asciz 详细介绍】

    在 ARM 汇编语言中, .include 命令用于插入另一个源文件的内容。它的作用类似于 C 语言中的 #include 预处理命令。这个命令通常在源文件的顶部使用,但也可以在任何地方使用。 语法如下: 这里的 \\\"filename\\\" 是你想要包含的文件名。这个文件名可以是绝对路径,也可以是相对于

    2024年02月11日
    浏览(53)
  • 【ARM 常见汇编指令学习 3 -- ARM64 无符号位域提取指令 UBFX】

    上篇文章:ARM 常见汇编指令学习 2 – 存储指令 STP 与 LDP 下篇文章:ARM 常见汇编指令学习 4 – ARM64 比较指令 cbnz 与 b.ne 区别 在代码中如何监控寄存器的某1bit, 或者某几bit ? ARM 提供了一个汇编指令:UBFX 就可以用于该功能。 UBFX 有2种语法分别是对32bit 寄存器和64bit寄存器。

    2024年02月15日
    浏览(35)
  • ARM64 常见汇编指令学习 11 -- ARM 汇编宏 .macro 的学习

    下篇文章:ARM64 常见汇编指令学习 12 – ARM 汇编函数 的学习 上篇文章:ARM64 常见汇编指令学习 10 – 无符号位域提取指令 BFXIL 在 ARM 汇编中,“ .macro ” 是用来定义一个宏的指令。宏可以看作是一个可以在汇编程序中重用的代码段。当调用宏时,汇编器会将宏的内容插入到调

    2024年02月14日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包