一、试验意图
1. 了解各种寻址方法:当即数;寄存器;寄存器移位;寄存器直接寻址;变址寻址。
2. 稳固和进步在ADS环境顶用汇编语言进行程序设计的基本技能。
二、试验内容
1. 在ADS下树立工程,并装备开发环境。
2. 创立一个汇编语言源程序,并添加到工程中,对其进行修改、编译和链接。
3. 运用AXD调试程序,调查各种寻址方法的功用。
三、试验进程(exp4_1_1.s)
AREA AddressingMode_1,CODE,READONLY
ENTRY
1) MOV R5,#15
2) MOV R2,#0xC
3) MOV R1,R5
4) ADD R0,R1,R2,LSR #3
5) LDR R4,=0x900600
6) STR R0,[R4]
STR R0,[R4,#4]
STR R0,[R4,#4]!
HERE B HERE
END
1) 写出上述指令的寻址方法
2) 履行下面两条指令,改动***的内容,观看寄存器R1的改变。
MOV R5,#15
MOV R1,R5, *** #1
***的内容如下:
LSL:逻辑左移(Logical Shift Left)
ASL:算术左移(Arithmetic Shift Left)
LSR:逻辑右移(Logical Shift Right)
ASR:算术右移(Arithmetic Shift Right)
ROR:循环右移(Rotate Right)
RRX:扩展为1的循环右移(Rotate Right eXtended by 1 place )
3) MOV R5,#0xFFF编译时是否会犯错?有过错
4) 调查履行 MOV R1,R5和ADD R0,R1,R2,LSR #3指令后相关的寄存器的改变。
4)调查履行LDR R4,=0x900600和STR R0,[R4]指令后,相应的存储器和寄存器的改变。
寄存器 register
存储器 memory
R0 32位 0b 00000000 00000000 00000000 00000010
|
(8位) |
0009 0000 |
00000010 |
0009 0001 |
|
0009 0002 |
|
0009 0003 |
|
序号 |
履行指令 |
指令履行后的改变状况 |
寄存器(值用16进制表明) |
存储器(值用16进制表明) |
R0 |
R1 |
R2 |
R3 |
R4 |
R5 |
|
|
MOV R5,#15
|
0 |
0 |
0 |
0 |
0 |
15 |
|
|
MOV R2,#0xC
|
0 |
0 |
12 |
0 |
0 |
15 |
|
|
MOV R1,R5
|
0 |
15 |
12 |
0 |
0 |
15 |
|
|
ADD R0,R1,R2,LSR #3
|
21 |
15 |
12 |
0 |
0 |
15 |
|
|
LDR R4,=0x90000
|
21 |
15 |
12 |
0 |
589824 |
15 |
|
|
STR R0,[R4]
|
21 |
15 |
12 |
0 |
589824 |
15 |
|
|
STR R0,[R4,#4]
|
|
|
|
|
|
|
|
|
STR R0,[R4,#4]!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/262744.html