指令集特点寻址方式和指令分类详解 习题

合集下载

第3章_6 8086指令系统(分支CPU指令)及习题

第3章_6 8086指令系统(分支CPU指令)及习题

例如:DI=200H 双字(DS:0200H)=12345678H JMP DWORD PTR [DI] 指令执行: 低位字:(IP)=5678H 高位字:(CS)=1234H
Part1 JMP DWORD PTR [DI]
CS:0100H
Part2 XXX Part3
1234H:5678H
五、程序转移指令—条件转移
SF PF
OF
五、程序转移指令—条件转移 复杂转移:
由多个标志的状态决定的转移,分为有符号数和无符号数转移 •无符号数转移指令 比较两个无符号数,并根据比较结果转移 JA 标号 ;两数比较,高于则转移 (JNBE) JNA 标号 ;两数比较,不高于则转移(JBE) JB 标号 ;两数比较,低于则转移 (JNAE) JNB 标号 ;两数比较,不低于则转移(JAE) •有符号数转移指令 比较两个带符号数,并根据比较结果转移 JG 标号 ;两数比较,大于则转移 (JNLE) JNG 标号 ;两数比较,不大于则转移(JLE) JL 标号 ;两数比较,小于则转移 (JNGE) JNL 标号 ;两数比较,不小于则转移(JGE)
CS:0100H 跳过1134H CS:1234H
例如: JMP 1234H 指令跳转到 CS:1234H执行。
Part3
五、程序转移指令—无条件转移
•段内转移: •直接短转移 : JMP SHORT START
SHORT START为 8位位移量 (-128~+127) •执行操作:(IP)←(IP)+2±位移量 例如: JMP SHORT START (=12H) 指令跳转到 CS:(IP+2+12H)执行。 例如: JMP SHORT START (= -12H) 指令跳转到 CS:(IP+2 - 12H)执行

寻址方式及指令系统习题与解答

寻址方式及指令系统习题与解答

寻址方式及指令系统习题与解答寻址方式及指令系统习题与解答计算机科学与工程学院黄洪波2012年3月一、单项选择题1.设BX=2000H,SI=3000H,指令MOV AX,[BX+SI+8]的源操作有效地址为()。

A.5000H B.5008H C.23008H D.32008H2.设DS=1000H,ES=2000H,BX=3000H,指令ADD AL,[BX]的源操作数的物理址为()。

A.13000H B.23000H C.33000H D.3000H3.设DS=2000H,ES=3000H,SI=200H,指令MOV ES:[SI],AL的目的操作数的物理地址为()。

A.20200H B.30200H C.50200H D.200H4.指令MOV MEM[BX],AX中的MEM是()。

A.原码B.反码C.补码D.移码5.用来作为寄存器间接寻址的寄存器有()个。

A.8 B.6 C.5 D.46.指令MOV [BX+SI],AL中的目的操作数使用()段寄存器。

A.CS B.DS C.SS D.ES7.指令MOV BX,[BP+5]中的源操作数使用()段寄存器。

A.CS B.DS C.SS D.ES8.段内间接寻址只改变()中的内容。

A.CS B.IP C.CS和IP D.PSW9.段间间接寻址只改变()中的内容。

A.CS B.IP C.CS和IP D.PSW10.下述指令中不改变PSW的指令是()。

A.MOV AX,BX B.AND AL,0FHC.SHR BX,CL D.ADD AL,BL11.下述指令中不影响CF的指令是()。

A.SHL AL,1 B.INC CXC.ADD [BX],AL D.SUB AX,BX12.两个整数补码9CH和7AH相加运算后,会产生()。

A.无溢出且无进位B.无溢出但有进位C.有溢出且有进位D.有溢出但无进位13.指令JMP WORD PTR [BX]属于()寻址。

微机原理习题解答:4

微机原理习题解答:4

微机原理习题解答:4习题四1.8086语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快?答:数据操作数的寻址方式有七种,分别为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对基址变址和相对基址变址寻址。

其中寄存器寻址的指令执行速度最快。

2.若DS=6000H,SS=5000H,ES=4000H,SI=0100H,BX=0300H,BP=0400H,D=1200H,数据段中变量名NUM的偏移地址为0050H,试指出下列源操作数的寻址方式和物理地址是多少?(1)MOV AX,[64H]答:寻址方式为直接寻址;PA=60064H(2)MOV AX,NUM 答:寻址方式为直接寻址;PA=60005H (3)MOV AX,[SI]答:寻址方式为寄存器间接寻址;PA=60100H (4)MOV AX,[BX]答:寻址方式为寄存器间接寻址;PA=60300H (5)MOV AX,[BP]答:寻址方式为寄存器间接寻址;PA=50400H (6)MOV AL,[DI]答:寻址方式为寄存器间接寻址;PA=61200H (7)MOV AL,[BX+1110H]答:寻址方式为寄存器相对寻址;PA=61410H (8)MOV AX,NUM[BX]答:寻址方式为寄存器相对寻址;PA=60305H (9)MOV AX,[BX+SI]答:寻址方式为基址变址寻址;PA=60400H(10)MOV AX,NUM[BX][DI]答:寻址方式为相对基址变址寻址;PA=61505H3.设BX=637DH,SI=2A9BH,位移量为C237H,试确定由这些寄存器和下列寻址方式产生的有效地址。

(1)直接寻址答:有效地址为EA=C237H(2)用BX的寄存器间接寻址答:有效地址为EA=637DH(3)用BX的相对寄存器间接寻址答:有效地址为EA=125B4H (4)基址加变址寻址答:有效地址为EA=8E18H(5)相对基址变址寻址答:有效地址为EA=1504FH其中,(3)和(5)中产生进位,要把最高位1舍去。

楼第4章指令系统习题解答

楼第4章指令系统习题解答

楼第4章指令系统习题解答习题解答:1.什么是寻址模式?8086/8088 CPU的寻址模式是什么?答:指令的寻址方式就是指获得操作数所在地址的方法。

8086/8088cpu指令的寻址方式可分为8种,为立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、基址变址相对寻址、隐含寻址。

2.指示源操作数和目标操作数在以下指令中的寻址方式(1)movax,[si]源操作数:寄存器寻址目的操作数:寄存器间接寻址(2)movdi,100源操作数:寄存器寻址目的操作数:立即寻址(3)mov[bx],al源操作数:寄存器间接寻址目的操作数:寄存器寻址(4)mov[bx+si],cx源操作数:基址变址寻址目的操作数:寄存器寻址(5)adddx,106h[si]源操作数:寄存器寻址目的操作数:寄存器相对寻址3.阅读以下说明(1)sti对(2)call1000h错(3)divax,dl错(4)shlal,4错(5)popax对(6)inal,[30h]错(7)inccs错(8)out40h,al对4.地址是根据已知的物理条件计算的。

已知:SS=1000h,ES=2000h,DS=3000h,CS=4000H,BX=5000h,di=1200h,BP=2300h(1)(2)(3)(4)(5)5.将SP的初始值设置为2400h,ax=4000H,BX=3600h,然后在执行pushax指令后,SP=?,执行pushbx和popax后,SP=?答:则执行指令pushax后,sp=2400h-2=23feh,再执行pushbx和popaxMovax,[2300h]计算公式:DS×16+2300hmov[BX][di],ax计算公式:DS×16+BX+diaddax,es:[2100h]计算公式:es×16+2100hsubdx,[BP+6]计算公式:SS×16+BP+6movax,[di]计算公式:DS×16+di后sp=23feh。

计算机系统结构--《张晨曦、王志英》课后习题参考答案

计算机系统结构--《张晨曦、王志英》课后习题参考答案

第1章计算机系统结构的基本概念1.1 解释下列术语层次机构: 按照计算机语言从低级到高级的次序, 把计算机系统按功能划分成多级层次结构, 每一层以一种不同的语言为特征。

这些层次依次为: 微程序机器级, 传统机器语言机器级, 汇编语言机器级, 高级语言机器级, 应用语言机器级等。

虚拟机: 用软件实现的机器。

翻译: 先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序, 然后再在这低一级机器上运行, 实现程序的功能。

解释: 对于高一级机器上的程序中的每一条语句或指令, 都是转去执行低一级机器上的一段等效程序。

执行完后, 再去高一级机器取下一条语句或指令, 再进行解释执行, 如此反复, 直到解释执行完整个程序。

计算机系统结构: 传统机器程序员所看到的计算机属性, 即概念性结构与功能特性。

在计算机技术中, 把这种本来存在的事物或属性, 但从某种角度看又好像不存在的概念称为透明性。

计算机组成: 计算机系统结构的逻辑实现, 包含物理机器级中的数据流和控制流的组成以及逻辑设计等。

计算机实现: 计算机组成的物理实现, 包括处理机、主存等部件的物理结构, 器件的集成度和速度, 模块、插件、底板的划分与连接, 信号传输, 电源、冷却及整机装配技术等。

系统加速比: 对系统中某部分进行改进时, 改进后系统性能提高的倍数。

Amdahl定律: 当对一个系统中的某个部件进行改进后, 所能获得的整个系统性能的提高, 受限于该部件的执行时间占总执行时间的百分比。

程序的局部性原理: 程序执行时所访问的存储器地址不是随机分布的, 而是相对地簇聚。

包括时间局部性和空间局部性。

CPI: 每条指令执行的平均时钟周期数。

测试程序套件: 由各种不同的真实应用程序构成的一组测试程序, 用来测试计算机在各个方面的处理性能。

存储程序计算机: 冯·诺依曼结构计算机。

其基本点是指令驱动。

程序预先存放在计算机存储器中, 机器一旦启动, 就能按照程序指定的逻辑顺序执行这些程序, 自动完成由程序所描述的处理工作。

指令集详解

指令集详解

指令集详解一、指令集概述指令集是计算机体系结构中的一部分,它规定了计算机指令的语法和语义,以及指令的操作码和操作数。

指令集是实现操作系统、编译器、汇编器等软件的基础,也是评估计算机性能的重要指标之一。

根据指令集的特点和应用场景,可以分为复杂指令集(CISC)和精简指令集(RISC)两类。

二、指令集架构类型1.复杂指令集(CISC)复杂指令集计算机(CISC)是指令集的一种类型,其特点是采用长指令字、具有丰富的指令集和复杂的寻址方式。

CISC可以处理各种复杂的计算和数据处理任务,但是其结构较为复杂,功耗较大,成本较高。

常见的CISC架构有x86、MIPS等。

2.精简指令集(RISC)精简指令集计算机(RISC)是另一种指令集类型,其特点是采用短指令字、具有较少的指令集和简单的寻址方式。

RISC结构简单,功耗较低,成本较低,适用于高性能计算和低功耗应用。

常见的RISC架构有ARM、MIPS、PowerPC等。

三、指令集指令格式指令集的指令格式是指令集的一个重要组成部分,它规定了指令的长度、操作码、操作数等信息的格式。

根据不同的指令集类型,指令格式也有所不同。

在CISC架构中,指令长度通常较长,操作码和操作数的比例较高,而在RISC架构中,指令长度较短,操作码和操作数的比例较低。

四、指令集优化技术为了提高计算机的性能,可以采用多种指令集优化技术。

常见的指令集优化技术包括:1.流水线技术:通过将指令执行过程划分为多个阶段,使得多个指令同时执行,提高计算机的吞吐量。

2.寄存器重命名技术:通过为每个寄存器分配一个唯一的名称,避免在指令执行过程中出现数据相关的问题。

3.推测执行技术:通过预测程序中的分支语句,提前执行可能的分支路径,减少分支对计算机性能的影响。

4.并行计算技术:通过多线程、多核等技术实现并行计算,提高计算机的处理能力。

5.动态编译技术:通过实时优化代码,提高程序的执行效率。

五、常见指令集简介1.x86指令集x86指令集是一种常见的复杂指令集,广泛应用于PC和服务器领域。

指令系统习题解答

指令系统习题解答

指令系统习题解答公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08]指令系统习题解答一、选择题1、变址寻址方式中,操作数的有效地址等于______。

(C)A 基值寄存器内容加上形式地址(位移量)B 堆栈指示器内容加上形式地址(位移量)C 变址寄存器内容加上形式地址(位移量)D 程序记数器内容加上形式地址(位移量)2、用某个寄存器中操作数的寻址方式称为______寻址。

(C)A 直接B 间接C 寄存器直接D 寄存器间接3、单地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个常需采用______。

(C)A 堆栈寻址方式B 立即寻址方式C 隐含寻址方式D 间接寻址方式4、寄存器间接寻址方式中,操作数处在______。

(B)A. 通用寄存器B. 主存单元C. 程序计数器D. 堆栈5、程序控制类指令的功能是______。

(D)A 进行算术运算和逻辑运算B 进行主存与CPU之间的数据传送C 进行CPU和I / O设备之间的数据传送D 改变程序执行顺序为SP指示器的6、堆栈寻址方式中,设A为通用寄存器,SP为堆栈指示器,MSP栈顶单元,如果操作的动作是:(A)→M,(SP)- 1 →SP ,那么出栈的动SP作应是______。

(B)A (M)→A,(SP) + 1→SP ;SP)→A ;B (SP) + 1→SP ,(MSP)→A ;C (SP) - 1→SP ,(MSPD (M)→A ,(SP) - 1→SP ;SP7.指令周期是指______。

(C)A CPU从主存取出一条指令的时间;B CPU执行一条指令的时间;C CPU从主存取出一条指令加上CPU执行这条指令的时间;D 时钟周期时间;8、指令系统采用不同寻址方式的目的是______。

(B)A 实现存贮程序和程序控制;B 缩短指令长度,扩大寻址空间,提高编程灵活性;C 可直接访问外存;D 提供扩展操作码的可能并降低指令译码的难度9、指令的寻址方式有顺序和跳跃两种方式,采用跳跃寻址方式,可以实现______。

指令系统习题解答

指令系统习题解答

指令系统习题解答一、选择题1、变址寻址方式中,操作数的有效地址等于______。

〔C〕A 基值寄存器内容加上形式地址〔位移量〕B 堆栈指示器内容加上形式地址〔位移量〕C 变址寄存器内容加上形式地址〔位移量〕D 程序记数器内容加上形式地址〔位移量〕2、用某个寄存器中操作数的寻址方式称为______寻址。

〔C〕A 直接B 间接C 寄存器直接D 寄存器间接3、单地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个常需采用______。

〔C〕A 堆栈寻址方式B 立即寻址方式C 隐含寻址方式D 间接寻址方式4、寄存器间接寻址方式中,操作数处在______。

〔B〕A. 通用寄存器B. 主存单元C. 程序计数器D. 堆栈5、程序控制类指令的功能是______。

〔D〕A 进行算术运算和逻辑运算B 进行主存与CPU之间的数据传送C 进行CPU和I / O设备之间的数据传送D 改变程序执行顺序6、堆栈寻址方式中,设A为通用寄存器,SP为堆栈指示器,M SP为SP指示器的栈顶单元,如果操作的动作是:〔A〕→M SP,〔SP〕- 1 →SP ,那么出栈的动作应是______。

〔B〕A 〔M SP〕→A,〔SP〕 + 1→SP ;B 〔SP〕 + 1→SP ,〔M SP〕→A ;C 〔SP〕 - 1→SP ,〔M SP〕→A ;D 〔M SP〕→A ,〔SP〕 - 1→SP ;7.指令周期是指______。

〔C〕A CPU从主存取出一条指令的时间;B CPU执行一条指令的时间;C CPU从主存取出一条指令加上CPU执行这条指令的时间;D 时钟周期时间;8、指令系统采用不同寻址方式的目的是______。

〔B〕A 实现存贮程序和程序控制;B 缩短指令长度,扩大寻址空间,提高编程灵活性;C 可直接访问外存;D 提供扩展操作码的可能并降低指令译码的难度9、指令的寻址方式有顺序和跳跃两种方式,采用跳跃寻址方式,可以实现______。

微机原理与接口技术 (第三版)电子工业出版社 第03章 8086的指令系统

微机原理与接口技术 (第三版)电子工业出版社 第03章 8086的指令系统

4、寄存器间接寻址(Register indirect addressing) 内存单元的逻辑偏移地址通过寄存器 间接给出。 例: MOV SI , 61A8H MOV DX , [SI]
5、基址/变址寻址(Based/Indexed addressing) 位移量是一带符号的16位16进制数。当 使用BX或BP寄存器时,称基址寻址;使用SI 或DI寄存器时,称变址寻址。 例: MOV CX , 36H[BX] MOV -20[BP] , AL
2、MOV数据传送指令 其格式为: MOV 目的操作数,源操作数 • 目的操作数和源操作数均可采用不同的寻 址方式, • 两个操作数的类型必需一致。
二、寻址方式介绍பைடு நூலகம்
1.立即寻址(Immediate addressing) 操作数就在指令中,紧跟在操作码后面, 作为指令一部分存放在内存的代码段中,这 种操作数称为立即数。 例: MOV AX , 34EAH MOV BL , 20H
3)、段间直接转移 JMP far PTR 目标地址 4)、段间间接转移 JMP WORD PTR[BX][SI]
2、条件转移指令
1)、单条件转移指令 ① JC ② JNC ③ JE/JZ ④ JNE/JNZ ⑤ JS ⑥ JNS ⑦ JO ⑧ JNO ⑨ JP/JPE ⑩ JNP/JPO ;CF标志为1,则转移 ;CF标志为0,则转移 ;ZF标志为1,则转移 ;ZF标志为0,则转移 ;SF标志为1,则转移 ;SF标志为0,则转移 ;OF标志为1,则转移 ;OF标志为0,则转移 ;PF标志为1,则转移 ;PF标志为0,则转移
3、目标地址传送指令
这类指令有: 1)LEA 有效地址传送到寄存器 2)LDS 装入一个新的物理地址 3)LES 装入一个新的物理地址

ARM基础知识单选题100道及答案解析

ARM基础知识单选题100道及答案解析

ARM 基础知识单选题100道及答案解析1. ARM 处理器采用的架构是()A. CISCB. RISCC. VLIWD. EPIC答案:B解析:ARM 处理器采用的是精简指令集(RISC)架构。

2. 以下哪个不是ARM 处理器的特点()A. 低功耗B. 高性能C. 复杂指令集D. 体积小答案:C解析:ARM 处理器是精简指令集,不是复杂指令集。

3. ARM 指令集的寻址方式不包括()A. 立即寻址B. 间接寻址C. 寄存器间接寻址D. 基址加变址寻址答案:B解析:ARM 指令集的寻址方式包括立即寻址、寄存器寻址、寄存器间接寻址、基址加变址寻址等,没有间接寻址。

4. 在ARM 体系结构中,用于存储程序状态寄存器的是()A. R0B. R13C. R15D. CPSR答案:D解析:CPSR(Current Program Status Register)用于存储程序状态。

5. 以下关于ARM 异常的说法错误的是()A. 复位异常优先级最高B. 未定义指令异常可以用于软件仿真C. 数据中止异常发生在数据访问时D. 快速中断异常响应速度比普通中断慢答案:D解析:快速中断异常响应速度比普通中断快。

6. ARM 处理器的工作模式不包括()A. 用户模式B. 系统模式C. 管理模式D. 超级模式答案:D解析:ARM 处理器的工作模式包括用户模式、系统模式、管理模式、中止模式、未定义模式、中断模式、快速中断模式。

7. 下列属于ARM 处理器的寄存器组的是()A. 通用寄存器B. 状态寄存器C. 控制寄存器D. 以上都是答案:D解析:ARM 处理器的寄存器组包括通用寄存器、状态寄存器和控制寄存器。

8. 在ARM 中,实现子程序调用的指令是()A. BB. BLC. BXD. MOV答案:B解析:BL 指令用于实现子程序调用,并保存返回地址。

9. 以下关于ARM 流水线的描述,错误的是()A. 提高了指令执行效率B. 增加了处理器的复杂度C. 减少了指令执行周期D. 不会产生流水线冲突答案:D解析:ARM 流水线可能会产生流水线冲突。

第3章 8086寻址方式和指令系统-题

第3章 8086寻址方式和指令系统-题

第3章8086寻址方式和指令系统一、单项选择题(共50小题)1、指令MOV AX,[3070H]中源操作数的寻址方式为()A、寄存器间接寻址B、立即寻址C、直接寻址D、变址寻址2、DS是()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器3、CF是()A、进位标志位B、辅加进位标志位C、符号标志位D、全零标志位4、SS是_()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器5、指令MOV [BX],AX中A、目的操作数是寄存器操作数B、源操作数是存储器操作数C、目的操作数是存储器操作数D、源操作数是立即操作数6、CS是()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器7、指令MOV AX,[BP]中A、源操作数存于数据段B、源操作数存于堆栈段C、目的操作数存于数据段D、目的操作数存于堆栈段8、BX是()A、8位通用寄存器B、16位通用寄存器C、16位段寄存器D、16位变址寄存器9、ZF是()A、进位标志B、方向标志C、符号标志D、零标志10、IP是()A、指令指针寄存器B、堆栈指针寄存器C、通用寄存器D、变址寄存器11、SI是()A、8位通用寄存器B、16位通用寄存器C、16位段寄存器D、指令指针寄存器12、DL是()A、16位段寄存器B、16位通用寄存器C、8位通用寄存器D、16位标志寄存器13、指令IDIV BX 的含义是()A、(AX)/(BX)B、(DX:AX)/(BX)C、(AL)/(BX)D、(AL)/(BL)14、下面4个寄存器中,不能作为间接寻址的寄存器是()A、BXB、DXC、BPD、DI15、设SS=2000H,执行下列程序段后SP=()MOV SP,2000HPUSH AXA、21FFEHB、20000HC、22000HD、22002H16、寄存器间接寻址方式中,操作数在( )中。

A、通用寄存器B、堆栈C、内存单元D、段寄存器17、JMP WORD PTR[DI]是( )A、段内间接转移B、段间间接转移C、段内直接转移D、段间直接转移18、堆栈指针SP的作用是( )。

计算机组成原理指令系统例题

计算机组成原理指令系统例题

计算机组成原理指令系统例题计算机组成原理涉及到很多方面,其中指令系统就是其中的一部分。

指令系统是计算机硬件和软件之间的桥梁,它决定了计算机可以完成哪些操作,以及如何完成这些操作。

在计算机的指令系统中,常常会涉及到指令的格式、寻址方式、指令执行周期等内容。

下面我们就来看一道指令系统的例题以加深理解。

例题:有一个带有8位数据总线的微处理器,它的寄存器可分为通用寄存器和专用寄存器两种。

其中除计数器之外的所有专用寄存器的位数为4位,计数器的位数为8位。

该微处理器采用的指令最短长度为8位。

现在要实现一个程序并且需要在其中使用到以下几条指令:1. LD (Load)指令:从内存中读取数据到寄存器。

2. ST (Store)指令:从寄存器中写入数据到内存。

3. ADD (Add)指令:将两个寄存器中的数据相加,并将结果储存在目的寄存器中。

4. SUB (Subtract)指令:将两个寄存器中的数据相减,并将结果储存在目的寄存器中。

5. JMP (Jump)指令:跳转到指定地址。

6. JZ (Jump if Zero)指令:如果目标寄存器的值为0,则跳转到指定地址。

现在,假设你要编写一个简单的程序,该程序需要从一个地址为0x200的内存单元处读取两个数并将它们相加,然后将结果存入另一个地址为0x210的内存单元。

程序中用到的寄存器为R1、R2以及ACC,其中R1和R2为通用寄存器,ACC为专用寄存器。

现在请你为这个程序编写指令序列,并给出每条指令的机器码。

解题思路:首先,我们需要了解一些术语和概念。

在这题中,我们知道微处理器带有8位数据总线,计数器的位数为8位。

因此,我们可以知道,这个微处理器最大可以寻址的内存为256字节。

通用寄存器和专用寄存器的位数分别为4位,说明它们可以存储0~15之间的数。

在指令中,我们需要使用到寄存器R1、R2以及ACC,其中ACC是专用寄存器,用来保存运算的结果。

接下来,我们来写出这个程序需要执行的指令序列:1. LD R1, #0x200:将0x200地址处的值读取到R1寄存器中。

嵌入式第三章课后习题

嵌入式第三章课后习题

第三章1、ARM7TDMI支持哪几种指令集,各有什么特点?答:支持ARM指令集和Thumb指令集,各自特点是ARM指令集的指令是32位,执行效率高、功能全,每条指令可以根据条件执行,但是代码密度低。

Thumb指令集指令是16位,在功能上是ARM指令集的子集,功能并没有降低。

2、ARM指令的寻址方式有几种?并指出下列指令中的寻址方式。

答:ARM指令的寻址方式有8种,分别为立即寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址变址寻址、相对寻址、多寄存器寻址、堆栈寻址。

⑴ SUB R0, R1, R2 寄存器寻址⑵LDR R0, [R2] 寄存器间接寻址⑶ MVN R0, #0x0F2 立即寻址⑷ LDMIA R0, {R1-R5} 多寄存器寻址⑸ STR R2, [R4, #0x02]!基址变址寻址⑹LDR R1, [R2, R3] 基址变址寻址⑺ MOV R1, R1, ROR #2 寄存器移位寻址⑻ LDR R1, [R3], #0x04 基址变址寻址3、简述ARM指令集中第2个操作数(operand2)的三种形式。

答:⑴常数表达方式。

该常数必须对应8位位图,即常数是由一个8位的常数循环右移偶数位得到。

例如:MOV R2,#100;⑵ 寄存器方式。

Operand2是Rm寄存器方式,在寄存器方式下操作数即位寄存器中的数值。

例如:SUB R0,R1,R2;⑶ 寄存器移位方式。

Rm,shift 表示将寄存器的移位结果作为操作数,但Rm值保持不变。

例如:MOV R0,R1,RRX;将R1带扩展的循环右移1位,存入R0中。

4、指出下列指令是否正确,若不正确请说明原因。

⑴ MOVS R1, 101 不正确,立即寻址方式应该是#101⑵ MVN R1, #0x10F 正确⑶ STMDA R11, {R2-R8}! 不正确,不能同时存储在R2和R8中⑷ ADD R0!, R2, #4 正确⑸ LDR R4, [R5]! 不正确,LDR是存储到单个寄存器的加载指令,而这个是两个存储器都进行存储,应该为LDR R4, [R5]⑹ MRS PC, CPSR 不正确MRS是将CPSR传送到通用寄存器中,但这里的通用寄存器不包括R15,即PC⑺ LDMFDS R0!, { R5-R8, R2} 正确⑻ ADD R3, [R3], R7 不正确,ADD指令不能访问存储器(9) LDR R11, [R15,R8] ! 正确(10) BXS R0 正确5、何谓ARM指令的条件码?默认的条件码是什么?举例说明ARM指令的条件码对指令执行的影响。

7ARM指令集特点、寻址方式和指令分类详解 习题4

7ARM指令集特点、寻址方式和指令分类详解 习题4
17
寄存器偏移寻址


寄存器偏移寻址是ARM指令集特有的寻址方式。 当第2作数是寄存器偏移方式时,第2个寄存器 操作数在与第1操作数结合之前,选择进行移 位操作。 寄存器偏移寻址指令举例如下: MOV R0, R2, LSL #3 ;R2的值左移3位,结果放入R0,即R0=R2×8 ANDS R1, R1, R2, LSL R3 ;R2的值左移R3位,然后与R1相“与” ,结果 放入R1,并且影响标志位。 SUB R11, R12, R3, ASR #5 ;R12―R3÷32,然后存入R11。

11
指令的条件执行


大多数ARM指令可包含一个可选的条件码{cond}, 只有CPSR中的条件码满足指定条件时,带条件码的 指令才能执行。 此外,大多数ARM指令可以根据执行结果选择是事 更新条件标志,如果更新则指令中须包含字母‘S’: MOVS R4, R4, LSR #32 ;C标志更新为R4的位[31],R4清零。
21
基址加偏移寻址

基址寻址就是将基址寄存器的内容与指令中给出的偏移 量相加,形成操作数的有效地址。基址寻址用于访问基 址附近的存储单元,常用于查表、数组操作、功能部件 寄存器访问等。基址寻址指令举例如下: LDR R2,[R3,#0x0C] 读取R3+0x0C地址上的存储单元的内容,放入R2。 STR R1,[R0,#-4]! ;[R0-4]←[R1],R0=R0-4,符号“!”表明指令在完 成数据传送后应该更新基址寄存器,否则不更新;属 前索引。 LDR R2,[R3],#0x0C ;R2=[R3],R3=R3+0x0C 称为后索引
6
灵活的第2操作数

立即数型


格式: #<32位立即数> 也写成#immed_8r #<32位立即数>是取值为数字常量的表达式,并 不是所有的32位立即数都是有效的。 有效的立即数很少。它必须由一个8位的立即数 循环右移偶数位得到。原因是32位ARM指令中 条件码和操作码等占用了一些必要的指令码位, 32位立即数无法编码在指令中。 举例:

ARM指令集特点、寻址方式和指令分类详解习题.ppt

ARM指令集特点、寻址方式和指令分类详解习题.ppt
9
寄存器移位方式生成的第2操作数 Rm{, shift}

将寄存器的移位结果作为操作数,但Rm值 保存不变,移位方法如下:

ASR LSL LSR ROR RRX
#n #n #n #n
;算术右移n位(1≤n≤32)。 ;逻辑左移n位(1≤n≤31)。 ;逻辑右移n位(1≤n≤32)。 ;循环右移n位(1≤n≤31)。 ;带扩展的循环右移1位。



二地址指令 指令隐含决定运算完毕后是 否改变状态标志 状态标志位有6位 单一指令密度 有整数除法指令 专用条件判断指令进行程序 分支 没有适合DSP处理的乘加指 令 运算指令能够访问存储器
4
4.6.2 ARM指令集的编码格式和语法

一条典型的ARM指令语法如下所示:
<opcode>{<cond>}{S} <Rd>, <Rn> {,<Operand2>} 其中: <opcode > 是指令助记符,决定了指令的操作。 例如:ADD表示算术加操作指令。 {<cond>} 是指令执行的条件,可选项。 {S} 决定指令的操作是否影响CPSR的值,可选项。 <Rd> 表示目标寄存器,必有项。 <Rn> 表示包含第1个操作数的寄存器,当仅需要一个源 操作数时可省略。 <Operand2> 表示第2个操作数,可选项。 第2操作数有两种格式:#immed_8r,Rm{, Shift}
第4章 ARM指令集

主要介绍以下内容: ARM指令集的基本特点 与Thumb指令集的区别 与x86处理器的区别 ARM指令格式 ARM寻址方式 ARM指令集分类详解

第三章指令系统总结及课后题

第三章指令系统总结及课后题

字 节 地 址
10、如何访问SFR,可采用那些寻址方式? 答:用直接寻址,位寻址,寄存器寻址 11、如何访问片外RAM,可使用那些寻址方式? 答:只能采用寄存器间接寻址(用MOVX指令) 12、如何访问片内RAM,可使用那些寻址方式? 答:低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器 寻址(R0~R7) 高128字节:直接寻址,位寻址,寄存器寻址 13、如何访问片内外程序存储器,可使用那些寻址方式? 答:采用变址寻址(用MOVC指令) 14、说明十进制调整的原因和方法? 答:压缩BCD码在进行加法运算时应逢十进一,而计算机只将 其当作十六进制数处理,此时得到的结果不正确。用DA A指令 调整(加06H,60H,66H) 15、说明8951布尔机处理机功能? 答:用来进行位操作
;被减数的低8位→A ;减数低8位→R2 ;被减数减去减数,差→A ;低8位结果→30H ;被减数的高8位→A ;减数高8位→R2 ;被减数减去减数,差→A ;高8位结果→30H
带借位减法指令(四条)
汇编指令格式 SUBB A, Rn; 机器码格式 1001 1rrr 操作 (A)-CY -(Rn) → A 注释 将工作寄存器内容与CY及 累加器A中的数相减, “差”存放于累加器A中 SUBB A,direct;1001 0101 direct SUBB A,@Ri; 1001 011i (A) -CY -((Ri)) →A (A) -CY -(direct) →A 将内部RAM单元内容与 CY及累加器A中的数相减, “差”存放于累加器A中 将间接寻址(Ri为R0或R1) 所得的片内RAM单元中内 容与CY及累加器A中的数
高128字节RAM区(SFR区,特殊功能寄存器区)
B
F0
ACC

《计算机原理学习指导》第四章指令系统综合练习题参考答案

《计算机原理学习指导》第四章指令系统综合练习题参考答案

《计算机原理学习指导》第四章指令系统综合练习题参考答案一、填空题1 、一个完善的指令系统应满足以下4个方面的要求,它们是:完备性、有效性、规整性和兼容性。

2、一条完整的指令是由操作码和地址码(操作数)两部分信息组成的。

3 、指令中的地址码字段包括源操作数的地址和操作结果数的地址(目的操作数的地址),前者用语指明操作数的存放处,后者用语存放运算的结果。

4 、指令格式按地址码部分的地址个数可以分为零地址指令格式、一地址指令格式、二地址指令格式和三地址指令格式。

5、常见的操作码方法有定长操作码和扩展操作码。

6、逻辑运算指令包括逻辑乘(与)、逻辑加(或)、逻辑非(求反)和异或(按位加)等操作。

二、单项选择题1、直接、间接、立即这 3 种寻址方式指令的执行速度有快到慢的排序是( C )A .直接、立即、间接B.直接、间接、立即C .立即、直接、间接D.立即、间接、直接2、指令系统中采用不同寻址方式的目的是(B)A .实现存储程序和程序控制B.缩短指令长度,扩大寻址空间,提高编程灵活性C .可以直接访问外存D.提高扩展操作码的可能并降低指令译码难度3、一地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个数常采用( C )A .堆栈寻址方式B.立即寻址方式C.隐含寻址方式 D .间接寻址方式4、对某个寄存器中操作数的寻址方式称为(C)寻址方式A .直接B .间接C .寄存器直接D.寄存器间接5、寄存器间接寻址方式中,操作数在(B)A .通用寄存器 B.主存单元C.程序计数器 D .外存6、变址寻址方式中,操作数的有效地址等于( C )A .基址寄存器内容加上偏移量B.堆栈指示器内容加上偏移量C .变址寄存器内容加上偏移量D.程序计数器内容加上偏移量7、扩展操作码是(D)A .操作码字段中用来进行指令分类的代码B.指令格式中不同字段设置的操作码C.操作码字段外用来操作字段的代码D.一种指令优化技术,即让操作码的长度随地址数的变化而变化8 A 、下面关于汇编语言的叙述中,不恰当的是( D ).对程序员的训练要求来说,需要硬件知识B.汇编语言对机器的依赖性强C.用汇编语言编写程序的难度比高级语言大D.用汇编语言编写的程序执行速度比高级语言慢9 A 、能够改变程序执行顺序的是( D ).数据传送类指令B.移位操作类指令 C .输入 /输出类指令 D .条件 /无条件转移类指令10 、以下的( D )不能支持数值处理A .算术运算类指令B.移位操作类指令C.字符串处理类指令D.输入/ 输出类指令三、名词解释题1 、指令:计算机能够识别和执行的操作命令2 、指令系统:一台计算机或一个计算机系统能够执行的各种指令的集合3 、指令字:一条完整的指令称为一个指令字4 、操作码:表示操作的性质及功能5 、地址码:表示指令的操作对象,指出操作数的地址6 、指令字长:等于地址码长度加上操作码长度7、定长操作码:让操作码的长度固定且集中放在指令字的一个字段中8、扩展操作码:操作码的长度可变且分散地放在不同的字段中9、寻址方式:指确定本条指令的地址及下一条要执行的指令地址的方法10、汇编语言:一种面向机器的程序设计语言,用助记符形式表示,属于低级程序设计语言11、机器语言:一种能被机器识别和执行的语言,用二进制数“0”和“1”形式表示12、 RISC :精简指令系统计算机13: CISC :复杂指令系统计算机,指具有大量指令的计算机系统四、简答题1、计算机指令中一般包含哪些字段?分别是什么含义?答:计算机指令中一般包含地址码和操作码两部分,地址码表示指令的操作对象,指出操作数的地址,操作码表示操作的性能及功能。

ARM指令集讲解

ARM指令集讲解

ARM指令集讲解ARM指令和指令系统:指令是指示计算机某种操作的命令,指令的集合称为指令系统。

指令系统的功能强弱很大程度上决定了这类计算机智能的高低,它集中地反应了微处理器的硬件功能和属性。

ARM指令在机器中的表示格式是用32位的二进制数表示。

如ARM中有一条指令为ADDEQS R0,R1,#8;其二进制代码形式为:31~28 | 27~25 | 24~21 | 20 | 19~16 | 15~12 | 11~0 0000 | 001 | 0100 | 1 | 0001 | 0000 | 0000 0000 1000cond | opcode | Rn | Rd | Op2ARM指令格式一般如下:{}{s},{,}格式中< >的内容是必不可少的,{ }中的内容可忽略表示操作码。

如ADD表示算术加法{} 表示指令执行的条件域。

如EQ、NE等,缺省为AL。

{S} 决定指令的执行结果是否影响CPSR的值,使用该后缀则指令执行结果影响CPSR的值,否则不影响表示目的寄存器表示第一个操作数,为寄存器表示第二个操作数,可以是立即数。

寄存器和寄存器移位操作数ARM指令后缀:S、!S后缀:指令中使用S后缀时,指令执行后程序状态寄存器的条件标志位将被刷新,不使用S后缀时,指令执行后程序状态寄存器的条件标志将不会发生变化。

S后缀常用于对条件进行测试,如是否有溢出,是否进位等,根据这些变化,就可以进行一些判断,如是否大于,相等,从而影响指令执行的顺序。

!后缀:如果指令地址表达式中不含!后缀,则基址寄存器中的地址值不会发生变化。

加上此后缀后,基址寄存器中的值(指令执行后)= 指令执行前的值+ 地址偏移量(1)!后缀必须紧跟在地址表达式后面,而地址表达式要有明确的地址偏移量(2)!后缀不能用于R15(PC)的后面(3)当用在单个地址寄存器后面时,必须确信这个寄存器有隐性的偏移量,例如“STMDB R1!,{R3,R5,R7}”。

计算机组成原理指令系统例题

计算机组成原理指令系统例题

计算机组成原理指令系统例题计算机组成原理是计算机科学中的重要基础课程,主要研究计算机硬件系统的组织、结构和功能,并重点探讨计算机的指令系统。

为了加深对指令系统的理解,我将给出一个例题并提供相关参考内容。

例题:考虑一个简化的指令系统,包含以下指令:add R1, R2, R3sub R1, R2, R3mul R1, R2, R3div R1, R2, R3jz R1, addressload R1, addressstore R1, address输出指令系统的格式、操作码格式、操作数寻址方式以及指令执行的功能。

参考内容:1. 指令系统的格式指令系统的格式是指指令在计算机中的存储和执行格式。

常见的指令格式有紧凑型和扩展型两种。

紧凑型指令格式将指令操作码和操作数紧凑地存储在一起,可节省存储空间并提高指令执行速度。

扩展型指令格式则将操作码和操作数分开存储,有利于指令的扩展和灵活性。

2. 操作码格式操作码格式表示指令的操作码部分。

在例题中,操作码的格式可以采用固定位数的二进制数。

例如,使用4位二进制数表示操作码,可以用0000表示add指令,0001表示sub指令,0010表示mul指令,0011表示div指令,0100表示jz指令,0101表示load指令,0110表示store指令。

3. 操作数寻址方式操作数寻址方式表示指令中操作数的寻址方式。

常见的操作数寻址方式包括紧随寻址、直接寻址、寄存器寻址、间接寻址、相对寻址和变址寻址等。

在例题中,可以采用寄存器寻址方式,即操作数采用寄存器R1、R2和R3来进行寻址。

4. 指令执行的功能指令执行的功能是指指令在计算机中实际执行的操作。

在例题中,按照指令的不同功能,可以得到以下执行结果:- add指令将R2和R3中的数据相加,并将结果存储到R1中。

- sub指令将R2和R3中的数据相减,并将结果存储到R1中。

- mul指令将R2和R3中的数据相乘,并将结果存储到R1中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

876543 0 Sh 0 0 Rm
移位长度寄存器
5
灵活的第2操作数
立即数型
格式: #<32位立即数>
也写成#immed_8r
#<32位立即数>是取值为数字常量的表达式,并 不是所有的32位立即数都是有效的。
有效的立即数很少。它必须由一个8位的立即数 循环右移偶数位得到。原因是32位ARM指令中 条件码和操作码等占用了一些必要的指令码位, 32位立即数无法编码在指令中。
操作数时可省略。 <Operand2> 表示第2个操作数,可选项。
第2操作数有两种格式:#immed_8r,Rm{, Shift}
4
ARM数据处理指令中第2操作数编码格式图解
31
28 27 26 25 24 21 20 19 16 15 12 11
0
cond
00 # opcode S源自RnRdOperand2
LSR # n ;逻辑右移n位(1≤n≤32)。
ROR # n ;循环右移n位(1≤n≤31)。
RRX
;带扩展的循环右移1位。
9
寄存器位移方式生成第2操作数 应用举例
ADD R1, R1, R1, LSL # 3 ;R1=R1*9,因为R1← R1+R1*8。 SUB R1, R1, R2, LSR # 2 ;R1=R1-R2÷4, ;因为R2右移2位相当于R2除以4。 EOR R11, R12, R3, ASR #5 ;R11= R12⊕(R3÷32) ;第2操作数是R3的内容除以32
举例:
ADD r3, r7, #1020 ;#immed_8r型第2操作数,
;1020是0xFF循环右移30位后生成的32位立即数
;推导:1020=0x3FC=0x000003FC
6
灵活的第2操作数(续1)
数据处理指令中留给Operand2操作数的编码空间 只有12位,需要利用这12位产生32位的立即数。其 方法是:把指令最低8位(bit[7:0])立即数循环右 移偶数次,循环右移次数由2*bit[11:8] (bit[11:8]是 Operand2的高4位)指定。
特权模式下可读可写 不能直接访问
能够全盘处理
不能处理
2
ARM指令集与x86指令集的主要不同点
ARM指令集
规整指令格式
即:正交指令格式
三地址指令
由指令的附加位决定运算完毕 后是否改变状态标志
状态标志位只有4位 有两种指令密度 无整数除法指令 大多数ARM指令都可以条件
执行 有适合DSP处理的乘加指令 Load/Store访存体系结构
4.6 ARM处理器的寻址方式和指令系统 4.6.1ARM处理器指令系统主要特征
ARM指令集和Thumb指令集具有以下共 同点:
⒈较多的寄存器,可以用于多种用途。 ⒉对存储器的访问只能通过Load/Store指令。
两种指令集的差异特征在下页给出
1
ARM指令集和Thumb指令集 的不同点
项目 指令工作标志 操作数寻址方式 指令长度 内核指令 条件执行 数据处理指令
10
指令的条件执行
大多数ARM指令可包含一个可选的条件码{cond}, 只有CPSR中的条件码满足指定条件时,带条件码的 指令才能执行。
此外,大多数ARM指令可以根据执行结果选择是事 更新条件标志,如果更新则指令中须包含字母‘S’: MOVS R4, R4, LSR #32 ;C标志更新为R4的位[31],R4清零。
位。<shift>用来指定移位类型(LSL,LSR,ASR, ROR或RRX)和移位位数。其中移位位数有两种 表示方式,一种是5位立即数(#shift),另外一种 是位移量寄存器Rs的值。参看下面的例子。例子 中的R1是Rm寄存器。
ADD R5, R3, R1, LSL #2 ;R5←R3+R1*4
例如:MOV R4, #0x8000000A ;其中的立即数#0x8000000A是由8位的0xA8循环右 移0x4位得到。
又例如:MOV R4, #0xA0000002 ;其中的立即数#0xA0000002是由8位的0xA8循环右 移0x6位得到。
7
灵活的第2操作数(续2)
寄存器移位型
格式:Rm{, <shift>} Rm是第2操作数寄存器,可对它进行移位或循环移
寄存器使用
程序状态寄存器 异常处理
ARM指令 CPSR的T位=0 大多数指令为3地址 32位 58条 大多数指令
Thumb指令 CPSR的T位=1 大多数指令为2地址 16位 30条 只有分支指令
访问桶形移位器和 独立的桶形移位器和
ALU
ALU指令
15个通用寄存器+PC 8个通用低寄存器+7个高 寄存器+PC
ADD R5, R3, R1, LSL R4 ;R5←R3+R1*2R4 ;R4是Rs寄存器,Rs用于计算右移次数
8
寄存器移位方式生成的第2操作数 Rm{, shift}
将寄存器的移位结果作为操作数,但Rm值 保存不变,移位方法如下:
ASR # n ;算术右移n位(1≤n≤32)。
LSL # n ;逻辑左移n位(1≤n≤31)。
<opcode>{<cond>}{S} <Rd>, <Rn> {,<Operand2>} 其中: <opcode > 是指令助记符,决定了指令的操作。
例如:ADD表示算术加操作指令。 {<cond>} 是指令执行的条件,可选项。 {S} 决定指令的操作是否影响CPSR的值,可选项。 <Rd> 表示目标寄存器,必有项。 <Rn> 表示包含第1个操作数的寄存器,当仅需要一个源
第一种
25
第2操作数格式
1
#immed_8r
第二种
25
第2操作数格式
0
Rm{,shift}
目的寄存器
第1操作数寄存器 是否修改CPSR
条件标志位
算术/逻辑功能
11
87
0
#rotate
8位立即数
8位立即数循环右移长度
11
876543 0
#shift Sh 0 0 Rm
立即数移位长度 移位类型
第2操作数寄存器 11 Rs
x86指令集
非规整指令格式
即:非正交指令格式
二地址指令
指令隐含决定运算完毕后是 否改变状态标志
状态标志位有6位 单一指令密度 有整数除法指令
专用条件判断指令进行程序 分支
没有适合DSP处理的乘加指 令
运算指令能够访问存储器
3
4.6.2 ARM指令集的编码格式和语法
一条典型的ARM指令语法如下所示:
相关文档
最新文档