习题 3.1 ARM7TDMI有几种寻址方式?LDR R1,[R0,#0x04]属于哪种寻址方式?
3.2 ARM指令的条件码有多少个?默认条件码是什么?
3.3 ARM指令中第二个操作数有哪几种形式?
3.4 请指出MOV指令与LDR加载指令的区别及用途.
3.5 CMP指令的功能是什么?写一个程序,判断R1的值是否大于0x30,是则将R1减去0x30。
3.6 调用子程序是用B还是用BL指令?请写出返回子程序的指令。
3.7 ARM状态与Thumb状态的切换指令是什么?请举例说明。
3.8 Thumb状态与ARM状态的寄存器有区别吗?Thumb指令对哪些寄存器的访问受到一定限制?
3.9 Thumb指令集的堆栈入栈、出栈指令是哪两条?
3.10 把下面的C代码转换成汇编代码。数组a和b分别存放在以0x4000和0x5000为起始地址的存储区内,类型为long型(32位)。
for(i=0;i<8;i++)
{
a = b[7-i];
}
3.11 编写程序,将R1的高8位传送到R2的低8位
3.12 编写一段64位加法运算的程序,要求满足:[R1:R0]+[R3:R2],结果存入[R1:R0]中
3.13 编写程序将地址0x0000 1000到0x0000 1030的数据全部搬迁到0x0000 2000到0x0000 2030的区域中,并将源数据区清零。 |