ARM汇编语言对工程“Exam4-1”修改:首先定义字、半字、字节3个变量,初值分别为:0x8d12f6ab, 0x9e2d、0x3a。然后,在程序中对这3个变量都加1并存回变量中。最后,利用数据加载指令将这三个变量的值分别加载到R0,R1,R2,并查看这3个变量的值。
时间: 2023-12-10 15:40:16 浏览: 119
下面是对工程"Exam4-1"的修改,实现了对三个变量的加1操作以及查看三个变量的值操作:
```
AREA Exam4-1, CODE, READONLY
;定义三个变量
var1 DC32 0x8d12f6ab
var2 DC16 0x9e2d
var3 DC8 0x3a
ENTRY
;将三个变量加1
LDR R1, =var1
LDR R2, =var2
LDR R3, =var3
LDR R0, [R1]
ADD R0, R0, #1
STR R0, [R1]
LDRH R0, [R2]
ADD R0, R0, #1
STRH R0, [R2]
LDRB R0, [R3]
ADD R0, R0, #1
STRB R0, [R3]
;将三个变量的值分别加载到R0,R1,R2,并查看这3个变量的值
LDR R0, =var1
LDR R0, [R0]
LDR R1, =var2
LDRH R1, [R1]
LDR R2, =var3
LDRB R2, [R2]
;查看结果
B .
END
```
在这段代码中,首先使用 DC32、DC16、DC8 定义了三个变量 var1、var2、var3,分别为一个字、半个字和一个字节,初始值分别为 0x8d12f6ab、0x9e2d 和 0x3a。
然后,在程序中,我们使用了 LDR 和 STR 指令对这三个变量进行加1操作,并存回变量中。具体来说,我们首先使用 LDR 将 var1、var2、var3 的地址分别存储到 R1、R2、R3 中,然后使用 LDR 和 ADD 指令将这三个变量加1,并使用 STR 指令将结果存回变量中。
最后,我们使用 LDR 指令将这三个变量的值分别加载到 R0、R1、R2 中,并使用 B 指令跳转到程序末尾,即查看结果的部分。在这里,我们使用 LDR 和 LDRH、LDRB 指令将 var1、var2、var3 的值分别加载到 R0、R1、R2 中,然后程序就结束了。
需要注意的是,在 ARM 汇编语言中,字是 32 位,半字是 16 位,字节是 8 位。因此,我们在定义 var1、var2、var3 时,需要使用 DC32、DC16、DC8 指令分别定义这三个变量。
阅读全文