安徽理工大学计算机汇编教程-thumb指令系统

上传人:子 文档编号:51728127 上传时间:2018-08-16 格式:PPT 页数:61 大小:561.50KB
返回 下载 相关 举报
安徽理工大学计算机汇编教程-thumb指令系统_第1页
第1页 / 共61页
安徽理工大学计算机汇编教程-thumb指令系统_第2页
第2页 / 共61页
安徽理工大学计算机汇编教程-thumb指令系统_第3页
第3页 / 共61页
安徽理工大学计算机汇编教程-thumb指令系统_第4页
第4页 / 共61页
安徽理工大学计算机汇编教程-thumb指令系统_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《安徽理工大学计算机汇编教程-thumb指令系统》由会员分享,可在线阅读,更多相关《安徽理工大学计算机汇编教程-thumb指令系统(61页珍藏版)》请在金锄头文库上搜索。

1、 计算机科学与技术系 汇编语言程序设计汇编语言程序设计8086/8088和ARM核 汇编语言程序设计第第1919章章ThumbThumb指令系统指令系统 Date1第1章 汇编语言基础知识 20章 ARM汇编程序 设计计算机科学与技术系 汇编语言程序设计汇编语言程序设计19.2 Thumb存储器访问指令第第2020章章 ARMARM汇编程序设计汇编程序设计19.1 概述19.3 Thumb数据处理指令19.4 Thumb分支指令19.5 Thumb杂项指令19.6 Thumb伪指令Date2第1章 汇编语言基础知识 20章 ARM汇编程序 设计计算机科学与技术系 汇编语言程序设计汇编语言程序设

2、计19.1 概述ThumbThumb指令集可以看作是指令集可以看作是ARMARM指令压缩形式的指令压缩形式的 子集,它是为减小代码量而提出的,具有子集,它是为减小代码量而提出的,具有1616位的代位的代 码密度。码密度。ThumbThumb指令体系不完整,只支持通用功能指令体系不完整,只支持通用功能 。必要时仍需要使用。必要时仍需要使用ARMARM指令,如进入异常时。指令,如进入异常时。说明:Thumb指令的格式与使用方式与ARM指令集类似,而且 使用并不是很频繁,建议这部分内容选修。Date3第1章 汇编语言基础知识 20章 ARM汇编程序 设计计算机科学与技术系 汇编语言程序设计汇编语言程

3、序设计19.2 Thumb存储器访问指令第第2020章章 ARMARM汇编程序设计汇编程序设计19.1 概述19.3 Thumb数据处理指令19.4 Thumb分支指令19.5 Thumb杂项指令19.6 Thumb伪指令Date4第1章 汇编语言基础知识 20章 ARM汇编程序 设计计算机科学与技术系 汇编语言程序设计汇编语言程序设计 Thumb存储器访问指令助记记符说说明操作影响标标志 LDR/STR Rd,addressing 加载载/存储储字数据RdRn,#immed_54 ,Rd、Rn为为R0R7无LDRH/STRH Rd,addressing 加载载/存储储无符号半 字数据RdRn

4、,#immed_52 ,Rd、Rn为为R0R7无LDRB/STRB Rd,addressing加载载/存储储无符号字 节节数据RdRn,#immed_51 ,Rd、Rn为为R0R7无LDRSH Rd,addressing 加载载有符号半字数据RdRn,Rm,Rd、Rn、 Rm为为R0R7无LDRSB Rd,addressing加载载有符号字节节数据RdRn,Rm,Rd、Rn、 Rm为为R0R7无单寄存器访问指令Date5第1章 汇编语言基础知识 20章 ARM汇编程序 设计计算机科学与技术系 汇编语言程序设计汇编语言程序设计 Thumb存储器访问指令LDR和STR加载/存储指令根据指令的寻址方

5、式不同,可以分为以下三类: 立即数偏移寻址;立即数偏移寻址; 寄存器偏移寻址;寄存器偏移寻址; PCPC或或SPSP相对偏移寻址;相对偏移寻址;Date6第1章 汇编语言基础知识 20章 ARM汇编程序 设计计算机科学与技术系 汇编语言程序设计汇编语言程序设计 单寄存器访问指令立即数偏移寻址立即数偏移寻址以这种寻址方式对存储器访问时,存储器的地址以一个 寄存器的内容为基址,在偏移一个立即数后指明。指令格式 如下:LDRLDRRd,Rn,#immed_5Rd,Rn,#immed_54 4 ; ;加载内存中的加载内存中的字字数据到寄存器数据到寄存器RdRd中中STRSTRRd,Rn,#immed_

6、54Rd,Rn,#immed_54 ; ;将将RdRd中的中的字字数据存储到指定地址的内存中数据存储到指定地址的内存中LDRH LDRH Rd,Rn,#immed_52Rd,Rn,#immed_52 ; ;加载内存中的加载内存中的半字半字数据到寄存器数据到寄存器RdRd的低的低1616位中位中STRHSTRHRd,Rn,#immed_52Rd,Rn,#immed_52 ; ;存储存储RdRd中的低中的低1616位位半字半字数据到指定的内存单元数据到指定的内存单元LDRBLDRBRd,Rn,#immed_51Rd,Rn,#immed_51 ; ;加载内存中的加载内存中的字节字节数据到寄存器数据到

7、寄存器RdRd中中STRBSTRBRd,Rn,#immed_51Rd,Rn,#immed_51 ; ;存储存储RdRd中的低中的低8 8位位字节字节数据到指定的内存单元数据到指定的内存单元其中:其中:RdRd 表示加载或存储的寄存器。必须为表示加载或存储的寄存器。必须为R0R0R7R7。RnRn 表示基址寄存器。必须为表示基址寄存器。必须为R0R0R7R7。immed_5immed_5N N 表示立即数偏移量,其取值范围为表示立即数偏移量,其取值范围为(0(031)31)N N。Date7第1章 汇编语言基础知识 20章 ARM汇编程序 设计计算机科学与技术系 汇编语言程序设计汇编语言程序设计

8、 单寄存器访问指令立即数偏移指令编码立即数偏移指令编码指令执行的条件码:0110b:LDR/STR指令;1000b:LDRH/STRH指令;0111b:LDRB/STRB指令;L用于区别加载(L为1) 或存储(L为0)Immed_5:5位无符号 立即数偏移Rn:基址寄存器Rd:源或目标寄存器Date8第1章 汇编语言基础知识 20章 ARM汇编程序 设计计算机科学与技术系 汇编语言程序设计汇编语言程序设计 单寄存器访问指令立即数偏移寻址注意:进行字数据访问时,必须保证传送地址为32位对 齐。进行半字数据访问时,必须保证传送地址为16位对 齐。应用示例:LDR R0,R1,#0x4LDR R0,

9、R1,#0x4STR R3,R4 STR R3,R4LDRH R5,R0,#0x02 LDRH R5,R0,#0x02STRH R1,R0,#0x08 STRH R1,R0,#0x08LDRB R3,R6,#20 LDRB R3,R6,#20STRB R1,R0,#31 STRB R1,R0,#31Date9第1章 汇编语言基础知识 20章 ARM汇编程序 设计计算机科学与技术系 汇编语言程序设计汇编语言程序设计 单寄存器访问指令寄存器偏移寻址寄存器偏移寻址这种寻址方式是以一个寄存器的内容为基址,以另一个 寄存器的内容为偏移量,两者相加作为存储器的地址。指令 格式如下:LDRLDRRd,Rn,

10、RmRd,Rn,Rm ; ;加载一个加载一个字字数据数据STRSTRRd,Rn,RmRd,Rn,Rm ; ;存储一个存储一个字字数据数据LDRHLDRHRd,Rn,RmRd,Rn,Rm ; ;加载一个加载一个无符号半字无符号半字数据数据STRHSTRHRd,Rn,RmRd,Rn,Rm ; ;存储一个存储一个无符号半字无符号半字数据数据LDRBLDRBRd,Rn,RmRd,Rn,Rm ; ;加载一个加载一个无符号字节无符号字节数据数据STRBSTRBRd,Rn,RmRd,Rn,Rm ; ;存储一个存储一个无符号字节无符号字节数据数据LDRSHLDRSHRd,Rn,RmRd,Rn,Rm ; ;加载

11、一个加载一个有符号半字有符号半字数据数据LDRSBLDRSBRd,Rn,RmRd,Rn,Rm ; ;存储一个存储一个有符号半字有符号半字数据数据其中:其中:RdRd 表示加载或存储的寄存器。必须为表示加载或存储的寄存器。必须为R0R0R7R7。RnRn 表示基址寄存器。必须为表示基址寄存器。必须为R0R0R7R7。RmRm 表示内含数偏移量的寄存器,必须为表示内含数偏移量的寄存器,必须为R0R0R7R7 。Date10第1章 汇编语言基础知识 20章 ARM汇编程序 设计计算机科学与技术系 汇编语言程序设计汇编语言程序设计 单寄存器访问指令寄存器偏移指令编码寄存器偏移指令编码指令执行的条件码:

12、00b:LDR/STR指令;01b:LDRH/STRH指令;10b:LDRB/STRB指令;L用于区别加载(L为1) 或存储(L为0)Rm:偏移量寄存器Rn:基址寄存器Rd:源或目标寄存器说明:当opcode位为11b 时,L位为0代表指令 “LDRSB“,L位为1代表指 令“LDRSH”Date11第1章 汇编语言基础知识 20章 ARM汇编程序 设计计算机科学与技术系 汇编语言程序设计汇编语言程序设计 单寄存器访问指令寄存器偏移寻址寄存器偏移寻址注意:进行字数据访问时,必须保证传送地址为32位对齐 。进行半字数据访问时,必须保证传送地址为16位对齐。应用示例:LDRLDRR3,R1,R0R

13、3,R1,R0STR STRR1,R0,R2R1,R0,R2LDRH LDRHR6,R0,R1R6,R0,R1STRH STRHR0,R4,R5R0,R4,R5LDRB LDRBR2,R5,R1R2,R5,R1STRB STRBR1,R3,R2R1,R3,R2LDRSH LDRSHR7,R6,R3R7,R6,R3LDRSB LDRSBR5,R7,R2R5,R7,R2Date12第1章 汇编语言基础知识 20章 ARM汇编程序 设计计算机科学与技术系 汇编语言程序设计汇编语言程序设计 单寄存器访问指令相对偏移寻址相对偏移寻址这种寻址方式是以PC或SP寄存器的内容为基址,以 一个立即数为偏移量,两者相加作为存储器的地址。指 令格式如下:LDRLDRRd,PC,#immed_84Rd,PC,#immed_84LDRLDRRd,labelRd,labelLDRLDRRd,SP,#immed_84Rd,SP,#immed_84STRSTRRd,SP,#immed_84Rd,SP,#immed_84 其中:其中:RdRd 表示加载或存储的寄存器。必须为表示加载或存储的寄存器。必须为R0R0R7R7。immed_84immed_84 表示偏移量,取值范围是表示偏移量,取值范围是(0(0255)4 255)4 。label label 表示程序相对偏移表达式表示程序相对偏移表达式,Label,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号