山东大学嵌入式系统原理与应用软件实验:ARM 汇编指令实验1—简单数据搬移实验

一、实验目的

熟悉实验开发环境,掌握简单ARM汇编指令的使用方法。

二、实验环境

(1)硬件:PC机

(2)软件:ADS1.2 集成开发环境

三、实验内容

(1)熟悉开发环境并使用LDR/STR,MOV等指令访问寄存器或存储单元;

(2)使用ADD/SUB/LSL/LSR/AND/ORR等指令,完成基本数学/逻辑运算。

四、实验内容

(1)在ADS下创建一个工程asmlab1,定义两个变量x,y和堆栈地址0x1000,将变量x的内容存到堆栈顶,然后计算x+y,并将和存到堆栈的下一个单元。通过AXD查看寄存器和memory和寄存器中数据变化。

(2)在指令后面加上适当注释,说明指令功能。

(3)指出程序执行完成后各相关寄存器及存储器单元的具体内容。

五、实验步骤

(1)实验源代码

    AREA Init,CODE,READONLY  ;伪指令AREA定义名为Init,属性为只读

的代码片段

    ENTRY  ;伪指令ENTRY声明程序入口

    CODE32 ;声明以下代码为32位的 ARM 指令

x EQU 45 ;定义变量 x

y EQU 64 ;定义变量 y

stack_top EQU 0x1000 ;定义堆栈地址 0x1000

start MOV SP, #stack_top  ;设置栈顶地址

    MOV R0, #x  ;把x的值赋给R0

    STR R0, [SP]  ;将R0中的内容入栈

    MOV R0, #y  ;把y的值赋给R0

    LDR R1, [SP]  ; 数据出栈,放入R1,即R1中放入x的值

    ADD R0, R0, R1  ;R0=R0+R1

    STR R0, [SP,#4] ;先执行SP+4(ARM为32位指令集),再将R0的内容复制到SP

指向的寄存器

    B .

    END  ;程序结束

(2)实验过程

        1、执行完start MOV SP, #stack_top 后,栈顶地址被设置为0x1000

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值