嵌入式系统原理与应用教学课件作者魏权利第3章微处理器ARM指令课件.ppt
文本预览下载声明
⑵ 作为32位的地址值程序 GPBCON EQU 0 ;使用伪指令EQU定义B端口控制寄存器地址 … LDR R0, =0xff000111 ;定义控制字送R0 LDR R1, = GPBCON ;B端口控制寄存器地址值送R1 STR R0, [R1] ;将控制字写入端口寄存器 … LTORG 注意:ARM伪指令是假的伪指令,它是ARM编译器定义的伪指令,会生成相应的机器码。而一般意义下的伪指令只供汇编器使用,不产生机器码。 另外,由于ARM都是单字指令,无法将任意一个32bit的二进制数,赋值给它的寄存器,只能将8bit的二进制数乘以整数2*(0~15)中的偶数通过MOV指令传递给寄存器(原理前已讲述),这样造成了不能将任意的32bit立即数送入系统作为操作数或有效的地址单元。为了弥补这一点,便引入了ARM伪指令。 * 4. NOP指令 空操作指令NOP。在汇编时将会被代替成ARM 中的空操作,比如MOV,R0,R0指令等。NOP可用于延时操作。NOP伪指令格式如下: NOP 应用示例: MOV R1, 0xFF00 DELAY1 NOP SUBS R1, R1, #1 BNE DELAY1 3.4 Thumb指令集 如果读者需要,可以参考其它书籍学习,这里不再赘述。 ? * * 第3章 习题 3-1 ARM指令有哪些的特点? 3-2 简述指令格式及各项的含义。ARM指令中的第2操作数operand2有哪些具体形式? 3-3 ARM指令条件码有哪些?取决于哪个寄存器? 3-4 ARM处理器有哪几种基本寻址方式? 3-5 在ARM的基址+变址寻址方式中,变址寻址方式有哪几种?举例说明。 3-6 在多寄存器寻址方式中,修改地址的方式有哪些? 3-7 存储器生长堆栈可分为哪几种?各有什么特点? 3-8 ARM微处理器支持这哪几种类型的堆栈工作方式?各有什么特点? * 第三章 习题(续1) 3-9 举例说明块复制寻址的操作过程。 3-10 举例说明变址寻址的操作过程。 3-11 ARM 指令集包含有哪些类型的指令? 3-12 ARM指令集分为哪几大类? 3-13 举例说明LSL、 LSR、ASR、ROR、RRX的移位操作过程 3-14 ARM 数据处理指令分为几类? 3-15 ARM的比较指令与一般的数据处理指令有什么不同? 3-16 ARM的寄存器装载与存储的基本指令是什么?由它派生出了几种同类的指令?分别是什么? 3-17 简述ARM 跳转指令的条数及其功能。 。 * 第三章 习题(续2) 3-18 简述ARM 杂项指令及其功能 3-19 ARM 协处理器指令作用是什么?5条指令各完成的功能。 3-20 简述ARM伪指令的功能。举例说明操作过程。 3-21 存储器从0x3004000开始的100个单元中存放着ASCII码,编写汇编程序,将其所有的小写字母转换为大写字母,其他保持不变。 3-22 编写程序,比较存储器中00无符号字数据的大小,并且将比较结果存于0字单元中,若两者相等结果记为0,若前者大于后者结果记为1,若前者小于后者结果记为-1(以补码的形式存储)。 3-23 将存储器中0始的200字节数据拷贝到0始的区域。 3-24 编写一简单ARM汇编程序,实现1+2+…+100的运算。 3-25 要实现多个寄存器的内容的压栈和弹栈,举例说明什么使用的汇编指令。 * ⑵ LDR/STR的指令寻址 LDR/STR的指令寻址方式非常灵活,由2部分组成,一是基址寄存器,可以使用任意一个通用寄存器;另一部分是基址偏移量。它有3种形式,以下进行简要介绍。 ※立即数形式。立即数用一个无符号数表示,它既可以与基址寄存器Rn相加,也可以与基址寄存器相减,从而形成一个有效的地址存储器操作地址。例如: LDR Rd,[Rn,#0x08] ;将Rn+0x08地址单元中的内容装载到Rd寄存器,Rn内容不变 LDR Rd,[Rn,#-0x08] ;将Rn-0x08地址单元中的内容装载到Rd寄存器,Rn内容不变 LDR Rd,[Rn] ;将Rn地址单元中的内容装载到Rd寄存器,0偏移。 ※寄存器形式。就是用寄存器的内容作为偏
显示全部