




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 大连理工大学大连理工大学 软件学院软件学院 赖晓晨赖晓晨 计算机组成原理大连理工大学 软件学院 赖晓晨第七章第七章 指令系统指令系统物理的计算机只能够执行机器语言程序,物理的计算机只能够执行机器语言程序,组成程序的每一条语句称作一条组成程序的每一条语句称作一条机器指令机器指令,一种计算机能够执行的机器指令的集合就是一种计算机能够执行的机器指令的集合就是这种计算机的这种计算机的指令系统指令系统。计算机设计者的重要工作之一为如何设计计算机设计者的重要工作之一为如何设计指令系统,计算机的使用者根据每一条指令指令系统,计算机的使用者根据每一条指令的功能,来操纵计算机。的功能,来操纵计算机。大连理工大
2、学 软件学院 赖晓晨第七章第七章 指令系统指令系统p 机器指令机器指令p 操作数类型和操作类型操作数类型和操作类型p 寻址方式寻址方式p 指令格式举例指令格式举例p RISC RISC 技术技术大连理工大学 软件学院 赖晓晨7.1 7.1 机器指令机器指令一、指令的一般格式一、指令的一般格式1 1、操作码:、操作码: 位数反映机器指令数目,内容反映机器做位数反映机器指令数目,内容反映机器做 什么操作。什么操作。 操作码类别操作码类别 长度固定:如长度固定:如 RISC RISC 机器,指令规整,译码简单机器,指令规整,译码简单 长度可变:操作码分散在指令字的不同字段中,长度可变:操作码分散在指
3、令字的不同字段中, 控制器设计复杂控制器设计复杂 操作码字段操作码字段 地址码字段地址码字段大连理工大学 软件学院 赖晓晨7.1 7.1 机器指令机器指令2 2、地址码:用来指定该指令操作数的地址、结果的地、地址码:用来指定该指令操作数的地址、结果的地址,以及(可能有的)下一条指令的地址。址,以及(可能有的)下一条指令的地址。例如指令:例如指令: MOV AX, 40MOV AX, 40地址地址“4040”指明了要操作的源操作数的地址,指明了要操作的源操作数的地址,AXAX指明了目的操作数的地址。指明了目的操作数的地址。体系结构不同的计算机,指令的地址码个数不同。体系结构不同的计算机,指令的地
4、址码个数不同。大连理工大学 软件学院 赖晓晨OP A1 A2 A3 A48 6 6 6 6A A1 1 第一操作数地址第一操作数地址A A2 2 第二操作数地址第二操作数地址A A3 3 结果的地址结果的地址A A4 4 下一条指令地址下一条指令地址( (A A1 1) OP (A) OP (A2 2) A) A3 3执行阶段执行阶段4 4 次访存次访存寻址范围寻址范围 2 26 6 = 64 = 64设指令字长为设指令字长为 32 32 位,操作码固定为位,操作码固定为 8 8 位位地址数目地址数目(1 1)四地址指令)四地址指令大连理工大学 软件学院 赖晓晨OP A1 A2 A3 A48
5、6 6 6 6A A1 1 第一操作数地址第一操作数地址A A2 2 第二操作数地址第二操作数地址A A3 3 结果的地址结果的地址A A4 4 下一条指令地址下一条指令地址( (A A1 1) OP (A) OP (A2 2) A) A3 3执行阶段执行阶段4 4 次访存次访存寻址范围寻址范围 2 26 6 = 64 = 64设指令字长为设指令字长为 32 32 位,操作码固定为位,操作码固定为 8 8 位位地址数目地址数目(1 1)四地址指令)四地址指令 程序中大部分指令是顺序执行的,可以用程序计数器PC来指明下一条指令地址,因此可以去掉A4字段。大连理工大学 软件学院 赖晓晨地址数目地址
6、数目(2 2)三地址指令)三地址指令8 8 8 8 OP A1 A2 A3(A1) OP (A2) A34 次访存次访存寻址范围寻址范围 28 = 256设指令字长仍为设指令字长仍为 32 32 位,操作码和地址码均为位,操作码和地址码均为 8 8 位位大连理工大学 软件学院 赖晓晨地址数目地址数目(2 2)三地址指令)三地址指令8 8 8 8 OP A1 A2 A3(A1) OP (A2) A34 次访存次访存寻址范围寻址范围 28 = 256设指令字长仍为设指令字长仍为 32 32 位,操作码和地址码均为位,操作码和地址码均为 8 8 位位如果A3用A1或者A2代替,那么A3可以省略。大连
7、理工大学 软件学院 赖晓晨地址数目地址数目(3 3)二地址指令)二地址指令设指令字长仍为设指令字长仍为 32 32 位,操作码位,操作码8 8位,地址码位,地址码12 12 位位OP A1 A28 12 12(A1) OP (A2) A1(A1) OP (A2) A2或或4 4 次访存次访存若结果存于若结果存于 ACCACC, 则则3 3次访存。次访存。 寻址范围寻址范围 2 21212 = 4 = 4 K K大连理工大学 软件学院 赖晓晨地址数目地址数目(3 3)二地址指令)二地址指令设指令字长仍为设指令字长仍为 32 32 位,操作码位,操作码8 8位,地址码位,地址码12 12 位位OP
8、 A1 A28 12 12(A1) OP (A2) A1(A1) OP (A2) A2或或4 4 次访存次访存若结果存于若结果存于 ACCACC, 则则3 3次访存。次访存。 寻址范围寻址范围 2 21212 = 4 = 4 K K 如果一个操作数可以隐含为ACC,则指令中可以只给出一个地址码。大连理工大学 软件学院 赖晓晨地址数目地址数目(4 4)一地址指令)一地址指令设指令字长仍为设指令字长仍为 32 32 位,操作码位,操作码8 8位,地址码位,地址码24 24 位位OP A18 24(ACC) OP (A1) ACC2 次访存次访存寻址范围寻址范围 224 = 16 M 大连理工大学
9、软件学院 赖晓晨地址数目地址数目(5 5)零地址指令)零地址指令 指令系统中,有一种指令可以不设置地址字段,即零地址指令。如:NOP、HLT指令,不需要地址码,RET、IRET等指令,操作数的地址隐含在堆栈中。大连理工大学 软件学院 赖晓晨3 3、操作码扩展技术、操作码扩展技术p 通过操作码扩展(对应的地址码长度收缩)通过操作码扩展(对应的地址码长度收缩)技术,能够有效的缩短指令的平均长度。技术,能够有效的缩短指令的平均长度。p 例如,某计算机有例如,某计算机有5 5条指令,两种设计方法。条指令,两种设计方法。变长指令,平均变长指令,平均2.42.4位位 等长指令,等长指令,3 3位位0001
10、10110111000001010011100大连理工大学 软件学院 赖晓晨4 444操作码扩展举例操作码扩展举例题目:题目: 假设一台计算机指令字长假设一台计算机指令字长1616位,操作码与地址码位,操作码与地址码都为都为4 4位,请列出几种可能的操作码设计方法。位,请列出几种可能的操作码设计方法。操作码操作码 地址码地址码大连理工大学 软件学院 赖晓晨OPOPA A1 1A A2 2A A3 34 4位位4 4位位4 4位位4 4位位OPOP1616条三地址指令条三地址指令0000 XXXX YYYY ZZZZ0000 XXXX YYYY ZZZZ1111 XXXX YYYY ZZZZ11
11、11 XXXX YYYY ZZZZOPOPA1A1A2A2OPOPA1A1固定操作码固定操作码固定固定4 4位操作码:位操作码:大连理工大学 软件学院 赖晓晨OPOPA A1 1A A2 2A A3 34 4位位4 4位位4 4位位4 4位位OPOP1515条三地址指令条三地址指令0000 XXXX YYYY ZZZZ0000 XXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ111111111616条二地址指令条二地址指令11111111 0000 XXXX YYYY 0000 XXXX YYYY11111111 1111 XXXX YY
12、YY 1111 XXXX YYYY扩展标志扩展标志OPOPA1A1A2A2OPOPA1A1扩展操作码扩展操作码1 1设计设计1515条三地址指令,留下一个码点,用来扩展条三地址指令,留下一个码点,用来扩展二地址指令二地址指令大连理工大学 软件学院 赖晓晨OPOPA A1 1A A2 2A A3 34 4位位4 4位位4 4位位4 4位位OPOP1515条三地址指令条三地址指令0000 XXXX YYYY ZZZZ0000 XXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ111111111515条二地址指令条二地址指令11111111 00
13、00 XXXX YYYY 0000 XXXX YYYY1111 1110 XXXX YYYY1111 1110 XXXX YYYY1111 11111111 11111616条一地址指令条一地址指令1111 11111111 1111 0000 XXXX 0000 XXXX1111 1111 1111 XXXX1111 1111 1111 XXXX扩展标志扩展标志OPOPA1A1A2A2OPOPA1A1扩展操作码扩展操作码2 2二地址指令留下一个码点,用来扩展一地址指令。二地址指令留下一个码点,用来扩展一地址指令。大连理工大学 软件学院 赖晓晨OPOPA A1 1A A2 2A A3 34 4
14、位位4 4位位4 4位位4 4位位OPOP1515条三地址指令条三地址指令0000 XXXX YYYY ZZZZ0000 XXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ111111111515条二地址指令条二地址指令11111111 0000 XXXX YYYY 0000 XXXX YYYY1111 1110 XXXX YYYY1111 1110 XXXX YYYY1111 11111111 11111515条一地址指令条一地址指令1111 11111111 1111 0000 XXXX 0000 XXXX1111 1111 1110
15、XXXX1111 1111 1110 XXXX1111 1111 11111111 1111 11111616条零地址指令条零地址指令1111 1111 11111111 1111 1111 0000 00001111 1111 1111 11111111 1111 1111 1111扩展标志扩展标志OPOPA1A1A2A2OPOPA1A1扩展操作码扩展操作码3 3一地址指令留下一个码点,用来扩展零地址指令。一地址指令留下一个码点,用来扩展零地址指令。大连理工大学 软件学院 赖晓晨0000000 0 XXXX YYYY ZZZZ XXXX YYYY ZZZZ1111110 0 XXXX YYY
16、Y ZZZZ XXXX YYYY ZZZZ1111111 1 11101110 0000 0000 XXXX XXXX1111111 1 11101110 1111 1111 XXXX XXXX1111111 1111 11111 1111 1111 0000 00001111111 1111 11111 1111 1111 1111 11111616条零地址指令条零地址指令1111111 1 00000000 XXXX YYYY XXXX YYYY1111111 1 11011101 XXXX YYYY XXXX YYYY1111111 1 11111111 00000000 XXXX XX
17、XX1111111 1 11111111 11101110 XXXX XXXX1515条三地址指令条三地址指令1414条二地址指令条二地址指令1616条一地址指令条一地址指令1515条一地址指令条一地址指令3131扩展操作码扩展操作码4 4另一种扩展方法另一种扩展方法大连理工大学 软件学院 赖晓晨操作码扩展举例总结操作码扩展举例总结A A、4 4位位OCOC中用中1110定义定义1515条三地址指令,编码条三地址指令,编码11111111作作为扩展标志与下一个为扩展标志与下一个4 4位组成一个位组成一个8 8位操作位操作 码,码, 引出二引出二地址指令,则:地址指
18、令,则:B B、1. 1. 若将若将A1A1全部用作全部用作2 2地址指令地址指令OCOC,再定义,再定义1616条条2 2地址指令;地址指令;2. 82. 8位位OCOC中用中用11110000-1111111011110000-11111110定义定义1515条条2 2地址指令,剩地址指令,剩 下一个编码下一个编码1111111111111111与下一个与下一个4 4位组成位组成1212位的操作码,引位的操作码,引出出1616条一地址指令,或者条一地址指令,或者1515条条1 1地址指令和地址指令和1616条零地址指条零地址指令;令;3. 3. 选选11110000111100001111
19、110111111101共共1414条条2 2地址指令,地址指令, 留留1111111011111110,1111111111111111为扩展标志,再分别扩展为扩展标志,再分别扩展1 1地址地址指令。指令。C C、若选、若选B B(3 3),则可定义),则可定义3131条条1 1地址指令,留一个编码地址指令,留一个编码111111111111111111111111为扩展标志,与下一个为扩展标志,与下一个4 4位组成位组成1616位操作码位操作码,引出,引出1616条零地址指令。条零地址指令。大连理工大学 软件学院 赖晓晨指令字长指令字长 = 存储字长存储字长2. 指令字长指令字长 可变可变
20、1. 指令字长指令字长 固定固定按字节的倍数变化按字节的倍数变化二、指令字长二、指令字长 指令字长取决于操作码长度、地址码长度和指令字长取决于操作码长度、地址码长度和地址码个数。指令按照字长是否可变分为两种:地址码个数。指令按照字长是否可变分为两种:大连理工大学 软件学院 赖晓晨指令字长指令字长 = 存储字长存储字长2. 指令字长指令字长 可变可变1. 指令字长指令字长 固定固定按字节的倍数变化按字节的倍数变化二、指令字长二、指令字长 指令字长取决与操作码长度、地址码长度和指令字长取决与操作码长度、地址码长度和地址码个数。指令按照字长是否可变分为两种:地址码个数。指令按照字长是否可变分为两种:
21、 指令字长可变,导致控制电路复杂,多字长指令需要多次访存,应尽量把常用指令设计为单字长或短字长指令。大连理工大学 软件学院 赖晓晨小问题小问题如何能够让最常用指令的操作码最短呢?大连理工大学 软件学院 赖晓晨指令字小结指令字小结p 当用一些硬件资源代替指令字中的地址码字当用一些硬件资源代替指令字中的地址码字段时,可以:段时,可以: 扩大指令寻址范围扩大指令寻址范围 缩短指令字长缩短指令字长 减少访存次数减少访存次数p 如果指令的地址字段为寄存器如果指令的地址字段为寄存器 可以缩短指令字长可以缩短指令字长 指令执行阶段不访存指令执行阶段不访存大连理工大学 软件学院 赖晓晨7.2 7.2 操作数类
22、型和操作种类操作数类型和操作种类一、操作数类型一、操作数类型 地址:有时地址也需要计算,此时地址也是数据地址:有时地址也需要计算,此时地址也是数据 数字:定点数、浮点数、十进制数数字:定点数、浮点数、十进制数 字符:字符:ASCIIASCII码码 逻辑数据:每一位都代表真(逻辑数据:每一位都代表真(1 1)或假()或假(0 0)的布)的布尔类型数据,这种数字串即为逻辑数。尔类型数据,这种数字串即为逻辑数。大连理工大学 软件学院 赖晓晨二、数据存储方式二、数据存储方式p 两种字节序:小端两种字节序:小端 vs vs 大端大端p 对齐方式对齐方式为了便于硬件实现,同时提高机器运行速度,通为了便于硬
23、件实现,同时提高机器运行速度,通常要求多字节数据在存储器中满足常要求多字节数据在存储器中满足“边界对齐边界对齐”的的要求。即,字节数据可以任意存放;半字存放在偶要求。即,字节数据可以任意存放;半字存放在偶数地址;字存放在末两位地址为数地址;字存放在末两位地址为0 0处;双字存放在末处;双字存放在末三位地址为三位地址为0 0处;处;大连理工大学 软件学院 赖晓晨地址(十进制)地址(十进制) 0 4 812162024283236双字双字(地址32)双字双字(地址24)半字(地址20)半字(地址22)半字(地址16)半字(地址18)字节(地址 8)字节(地址 9)字节(地址10)字节(地址11)字
24、(地址 4)字(地址 0)字节(地址14) 字节(地址15)字节(地址13)字节(地址12)边界对准边界对准地址(十进制)地址(十进制)048字节字节( 地址地址7)字节字节( 地址地址6)字字( 地址地址2)半字半字( 地址地址10)半字半字( 地址地址8)半字半字( 地址地址0)字字( 地址地址4)边界未对准边界未对准 边界对齐边界对齐大连理工大学 软件学院 赖晓晨边界不对齐的恶果边界不对齐的恶果从不对齐的地址处取一个字从不对齐的地址处取一个字int readint(_packed int *data) return *data;_packed的影响的影响大连理工大学 软件学院 赖晓晨实际
25、执行的指令是。实际执行的指令是。太麻烦了。太麻烦了。readint BIC r3,r0,#3 ; r3 = data & 0 xFFFFFFFC AND r0,r0,#3 ; r0 = data & 0 x00000003 MOV r0,r0,LSL #3 ; r0 = bit offset of data word LDMIA r3,r3,r12 ; r3, r12 = 8 bytes read from r3 MOV r3,r3,LSR r0 ; These three instructions RSB r0,r0,#0 x20 ; shift the 64 bit val
26、ue r12.r3 ORR r0,r3,r12,LSL r0 ; right by r0 bits MOV pc,r14 ; return r0大连理工大学 软件学院 赖晓晨三、操作类型三、操作类型1 1、数据传送类指令、数据传送类指令源源 目的目的寄存器寄存器 寄存器寄存器MOV AX, BXMOV AX, BX寄存器寄存器 存储器存储器MOV 20, AXMOV 20, AXSTORESTORE指令指令存储器存储器 寄存器寄存器MOV AX, 20MOV AX, 20LOADLOAD指令指令存储器存储器 存储器存储器MOV 20, 30MOV 20, 30堆栈操作:堆栈操作:PUSH AX
27、PUSH AX POP AXPOP AX清零、置清零、置1 1:MOV AX, #0MOV AX, #0MOV AX, #1MOV AX, #1大连理工大学 软件学院 赖晓晨2 2、运算类指令、运算类指令算术运算:加、减、乘、除、求补、浮点、十进算术运算:加、减、乘、除、求补、浮点、十进制运算制运算ADD AX, #20ADD AX, #20DIV AX, #3DIV AX, #3逻辑运算:与、或、非、异或逻辑运算:与、或、非、异或AND AX, #30AND AX, #30XOR AX, #30XOR AX, #30其他:位测试、位清除、位求反其他:位测试、位清除、位求反大连理工大学 软件学
28、院 赖晓晨3 3、移位指令、移位指令一般来说,有一般来说,有8 8种移位指令种移位指令算术左移、算术右移、逻辑左移、逻辑右移算术左移、算术右移、逻辑左移、逻辑右移小循环左移、小循环右移小循环左移、小循环右移大循环左移、大循环右移大循环左移、大循环右移无论哪一种移位,移出位无论哪一种移位,移出位都保存在进位标志都保存在进位标志C C中。中。大连理工大学 软件学院 赖晓晨移位操作移位操作SALSARSHLSHRROLRORRCLRCR大连理工大学 软件学院 赖晓晨4 4、转移指令、转移指令A A、无条件转移指令、无条件转移指令 直接跳转到某处,不取决于任何条件。类似直接跳转到某处,不取决于任何条件
29、。类似C C中中的的gotogoto语句。例如:语句。例如:JMP LOOPJMP LOOPB B、条件转移指令、条件转移指令 根据机器当前的程序状态字中的某位来决定是否根据机器当前的程序状态字中的某位来决定是否执行转移。例如:执行转移。例如: JZ LOOPJZ LOOPITFZSOCPSWPSW大连理工大学 软件学院 赖晓晨4 4、转移指令、转移指令A A、无条件转移指令、无条件转移指令 直接跳转到某处,不取决于任何条件。类似直接跳转到某处,不取决于任何条件。类似C C中中的的gotogoto语句。例如:语句。例如:JMP LOOPJMP LOOPB B、条件转移指令、条件转移指令 根据机
30、器当前的程序状态字中的某位来决定是否根据机器当前的程序状态字中的某位来决定是否执行转移。例如:执行转移。例如: JZ LOOPJZ LOOPITFZSOCPSWPSW 程序状态字程序状态字PSWPSW(FLAGFLAG)是)是CPUCPU内部的一个寄存器,内部的一个寄存器,用来存放两类信息:用来存放两类信息:1 1、体现当前指令执行结果的各种体现当前指令执行结果的各种状态信息状态信息,如有无进,如有无进位(位(CFCF位),有无溢出(位),有无溢出(OFOF位),结果正负(位),结果正负(SFSF位),位),结果是否为零(结果是否为零(ZFZF位),奇偶标志位(位),奇偶标志位(PFPF位)等
31、;状位)等;状态位全部态位全部自动设置自动设置。2 2、存放存放控制信息控制信息,如允许中断,如允许中断(IF(IF位位) ),跟踪标志(,跟踪标志(TFTF位)等。位)等。大连理工大学 软件学院 赖晓晨4 4、转移指令、转移指令C C、调用与返回指令:类比、调用与返回指令:类比C C程序中的函数调用,程序中的函数调用,以及函数返回。例如:以及函数返回。例如:CALL PRO1CALL PRO1、RETRET子程序调用需要子程序调用需要注意注意以下几点:以下几点:p子程序可以在多处被调用子程序可以在多处被调用p子程序调用可以嵌套子程序调用可以嵌套pCALLCALL与与RETRET指令配对使用指
32、令配对使用p要妥善保存子程序的返回地址要妥善保存子程序的返回地址专用寄存器、堆栈专用寄存器、堆栈大连理工大学 软件学院 赖晓晨子程序调用过程子程序调用过程CALL SUB1.CALL SUB2.CALL SUB2RETURNRETURN主程序主程序地址地址200021002101子程序子程序SUB1240025002501256025612700主存空间分配主存空间分配程序执行流程程序执行流程子程序子程序SUB2.大连理工大学 软件学院 赖晓晨4 4、转移指令、转移指令D D、陷阱(、陷阱(TRAPTRAP)指令)指令 一旦机器运行出现意外故障(未定义指令、除一旦机器运行出现意外故障(未定义指
33、令、除0 0、设备故障、电压不稳),计算机发出陷阱信号(陷设备故障、电压不稳),计算机发出陷阱信号(陷阱隐指令),暂停当前指令的执行,转入故障处理阱隐指令),暂停当前指令的执行,转入故障处理程序。陷阱指令不提供给用户使用,由机器自动执程序。陷阱指令不提供给用户使用,由机器自动执行。行。 也有某些机器提供陷阱指令,例如也有某些机器提供陷阱指令,例如IBMIBMPCPC提供的提供的INT INT 软中断指令,用来完成系统调用。软中断指令,用来完成系统调用。大连理工大学 软件学院 赖晓晨5 5、输入输出指令、输入输出指令 对对I/OI/O单独编址的计算机,设置有专门的输单独编址的计算机,设置有专门的
34、输入输出指令,用来操纵外设。例如:入输出指令,用来操纵外设。例如:IN AX, 20IN AX, 20OUT DX, AXOUT DX, AX独立编址独立编址 vs vs 统一编址统一编址端口地址端口地址 CPU 的寄存器的寄存器CPU 的寄存器的寄存器 端口地址端口地址大连理工大学 软件学院 赖晓晨6 6、其他指令、其他指令停机指令、空操作指令、开中断指令、关中断指停机指令、空操作指令、开中断指令、关中断指令、置条件码指令。令、置条件码指令。字符串传送、字符串比较、字符串查询字符串传送、字符串比较、字符串查询特权指令(操作系统用)特权指令(操作系统用)向量指令向量指令多处理机指令多处理机指令
35、大连理工大学 软件学院 赖晓晨7.3 7.3 寻址方式寻址方式p 指令寻址指令寻址p 数据寻址数据寻址大连理工大学 软件学院 赖晓晨一、指令寻址一、指令寻址顺序顺序( PC ) + 1 PC跳跃跳跃由转移指令指出由转移指令指出LDA 1000ADD 1001DEC 1200JMP 7LDA 2000SUB 2001INCSTA 2500LDA 1100.0123456789PC+1指令地址寻址方式指令地址寻址方式指令地址指令地址指令指令顺序寻址顺序寻址 1顺序寻址顺序寻址 2顺序寻址顺序寻址 3跳跃寻址跳跃寻址 7顺序寻址顺序寻址 8大连理工大学 软件学院 赖晓晨二、数据寻址二、数据寻址 数据
36、寻址有多种,需要在指令中明确指出采数据寻址有多种,需要在指令中明确指出采用哪一种寻址方式,可以专门设置一个寻址方式用哪一种寻址方式,可以专门设置一个寻址方式特征字段,或纳入操作码中。特征字段,或纳入操作码中。形式地址形式地址 指令字中的地址指令字中的地址 有效地址有效地址 操作数的真实地址操作数的真实地址 约定约定 指令字长指令字长 = = 存储字长存储字长 = = 机器字长机器字长形式地址形式地址 A A操作码操作码寻址特征寻址特征有效地址由形式地址根据寻址方式来确定。有效地址由形式地址根据寻址方式来确定。 大连理工大学 软件学院 赖晓晨1 1、立即寻址、立即寻址 又称作立即数寻址,即指令中
37、的形式地址部又称作立即数寻址,即指令中的形式地址部分不是一个操作数的地址,而是操作数本身。分不是一个操作数的地址,而是操作数本身。 指令执行阶段不访存指令执行阶段不访存 A A 的位数限制了立即数的范围的位数限制了立即数的范围OPOP # # A A立即寻址特征立即寻址特征立即数立即数 可正可负可正可负 补码补码MOV AX, #20HMOV AX, #20H大连理工大学 软件学院 赖晓晨2 2、直接寻址、直接寻址 指令中的形式地址部分即为有效地址。指令中的形式地址部分即为有效地址。EA = AEA = A操作数操作数主存主存寻址特征寻址特征LDALDAA AA AACCACC 执行阶段访问一
38、次存储器执行阶段访问一次存储器 A A 的位数限制了该指令操作数的寻址范围的位数限制了该指令操作数的寻址范围 操作数的地址不易修改(必须修改操作数的地址不易修改(必须修改A A)MOV AX, 20HMOV AX, 20H】大连理工大学 软件学院 赖晓晨3 3、隐含寻址、隐含寻址 指令中不直接给出操作数地址,操作数地址指令中不直接给出操作数地址,操作数地址通常隐含在操作码或某个(约定)寄存器中。通常隐含在操作码或某个(约定)寄存器中。ADDADDA A操作数操作数主存主存寻址特征寻址特征A AACCACC暂存暂存ALUALU另一个操作数另一个操作数隐含在隐含在 ACC ACC 中中大连理工大学
39、 软件学院 赖晓晨3 3、隐含寻址、隐含寻址 指令中不直接给出操作数地址,操作数地址指令中不直接给出操作数地址,操作数地址通常隐含在操作码或某个(约定)寄存器中。通常隐含在操作码或某个(约定)寄存器中。ADDADDA A操作数操作数主存主存寻址特征寻址特征A AACCACC暂存暂存ALUALU另一个操作数另一个操作数隐含在隐含在 ACC ACC 中中 如如80868086的的MULMUL指令,被乘数隐含在指令,被乘数隐含在 AXAX(1616位)或位)或 ALAL(8 8位)中;位)中; MOVS MOVS指令源操作数的地址隐含在指令源操作数的地址隐含在 SI SI 中目的操作中目的操作数的地
40、址隐含在数的地址隐含在 DI DI 中。中。 指令字中少了一个地址字段,可缩短指令字长指令字中少了一个地址字段,可缩短指令字长大连理工大学 软件学院 赖晓晨4 4、间接寻址、间接寻址 指令中的形式地址不是操作数的地址,而是指令中的形式地址不是操作数的地址,而是“操作数地址的地址操作数地址的地址”。EA =(A)有效地址由形式地址间接提供OPA寻址特征AEA主存EAA1EA A1主存 EA10OPA寻址特征A一次间址多次间址操作数操作数多次访存大连理工大学 软件学院 赖晓晨4 4、间接寻址、间接寻址 指令中的形式地址不是操作数的地址,而是指令中的形式地址不是操作数的地址,而是“操作数地址的地址操
41、作数地址的地址”。EA =(A)有效地址由形式地址间接提供OPA寻址特征AEA主存EAA1EA A1主存 EA10OPA寻址特征A一次间址多次间址操作数操作数一次间接寻址,指令执行阶段两次访存;一次间接寻址,指令执行阶段两次访存;可以扩大寻址范围可以扩大寻址范围便于编制程序便于编制程序多次访存大连理工大学 软件学院 赖晓晨间接寻址编程举例间接寻址编程举例 子程序主程序8081201202调用子程序调用子程序81202 间址特征JMP A A单元大连理工大学 软件学院 赖晓晨5 5、寄存器寻址、寄存器寻址 指令中的形式地址直接指出寄存器的编号,指令中的形式地址直接指出寄存器的编号,操作数存储于寄
42、存器中。操作数存储于寄存器中。EA = RiOPRi寻址特征操作数R0RiRn寄存器有效地址即为寄存器编号MOV AX, BXMOV AX, BX大连理工大学 软件学院 赖晓晨MOV AX, BXMOV AX, BX5 5、寄存器寻址、寄存器寻址 指令中的形式地址直接指出寄存器的编号,指令中的形式地址直接指出寄存器的编号,操作数存储于寄存器中。操作数存储于寄存器中。EA = RiOPRi寻址特征操作数R0RiRn寄存器有效地址即为寄存器编号执行阶段不访存,只访问寄存器,执行速度快寄存器个数有限,可缩短指令字长大连理工大学 软件学院 赖晓晨6 6、寄存器间接寻址、寄存器间接寻址 指令中的形式地址
43、为寄存器的编号,寄存器指令中的形式地址为寄存器的编号,寄存器的内容是操作数的有效地址。的内容是操作数的有效地址。操作数主存OPRi寻址特征地址R0RiRn寄存器EA = ( Ri )有效地址在寄存器中MOV AX, BXMOV AX, BX大连理工大学 软件学院 赖晓晨MOV AX, BXMOV AX, BX6 6、寄存器间接寻址、寄存器间接寻址 指令中的形式地址为寄存器的编号,寄存器指令中的形式地址为寄存器的编号,寄存器的内容是操作数的有效地址。的内容是操作数的有效地址。操作数主存OPRi寻址特征地址R0RiRn寄存器EA = ( Ri )有效地址在寄存器中有效地址在寄存器中,操作数在存储器
44、中,执行阶段访存便于编制循环程序大连理工大学 软件学院 赖晓晨7 7、基址寻址、基址寻址 指令中的形式地址与基址寄存器内容之和为指令中的形式地址与基址寄存器内容之和为有效地址。有效地址。1 1、采用专用寄存器作为基址寄存器(隐式)、采用专用寄存器作为基址寄存器(隐式)2 2、采用通用寄存器作为基址寄存器(显式)、采用通用寄存器作为基址寄存器(显式)大连理工大学 软件学院 赖晓晨专用寄存器基址寻址专用寄存器基址寻址EA = ( BR ) + ABR 为基址寄存器OPA操作数主存寻址特征ALUBR大连理工大学 软件学院 赖晓晨通用寄存器基址寻址通用寄存器基址寻址操作数主存寻址特征ALUOPR0AR
45、0 作基址寄存器 由用户指定哪个通用寄存器作为基址寄存器通用寄存器R0Rn-1R1 在程序的执行过程中 R0 内容不变,形式地址 A 可变大连理工大学 软件学院 赖晓晨7 7、基址寻址、基址寻址 指令中的形式地址与基址寄存器内容之和为指令中的形式地址与基址寄存器内容之和为有效地址。有效地址。1 1、采用专用寄存器作为基址寄存器(隐式)、采用专用寄存器作为基址寄存器(隐式)2 2、采用通用寄存器作为基址寄存器(显式)、采用通用寄存器作为基址寄存器(显式) 可扩大寻址范围 有利于多道程序 基址寄存器内容由操作系统或管理程序确定大连理工大学 软件学院 赖晓晨8 8、变址寻址、变址寻址 指令中的形式地
46、址与变址寄存器内容之和为指令中的形式地址与变址寄存器内容之和为有效地址。有效地址。EA = ( IX ) +AOPA操作数主存寻址特征ALUIXIX 为变址寄存器通用寄存器也可以作为变址寄存器大连理工大学 软件学院 赖晓晨8 8、变址寻址、变址寻址 指令中的形式地址与变址寄存器内容之和为指令中的形式地址与变址寄存器内容之和为有效地址。有效地址。EA = ( IX ) +AOPA操作数主存寻址特征ALUIXIX 为变址寄存器通用寄存器也可以作为变址寄存器可以扩大寻址范围IX的内容由用户指定在程序执行过程中,IX内容可变,形式地址A不变便于处理数组问题大连理工大学 软件学院 赖晓晨设数据块首地址为
47、设数据块首地址为 D D,求求 N N 个数的平均值个数的平均值直接寻址变址寻址LDA DADD D + 1ADD D + 2ADD D + ( N -1 )DIV # NSTA ANSLDA # 0LDX # 0INXCPX # NBNE MDIV # NSTA ANS共 N + 2 条指令共 8 条指令ADD X, DM:X 为变址寄存器D 为形式地址(X) 和 #N 比较(X) +1 X结果不为零则转大连理工大学 软件学院 赖晓晨9 9、相对寻址、相对寻址 有效地址为程序计数器有效地址为程序计数器PCPC的值与形式地址的值与形式地址之和。之和。 EA = ( PC ) + AA 是相对于
48、当前指令的位移量(可正可负,补码)操作数寻址特征ALUOPA相对距离 A1000PC 主存1000AOP大连理工大学 软件学院 赖晓晨9 9、相对寻址、相对寻址 有效地址为程序计数器有效地址为程序计数器PCPC的值与形式地址的值与形式地址之和。之和。 EA = ( PC ) + AA 是相对于当前指令的位移量(可正可负,补码)操作数寻址特征ALUOPA相对距离 A1000 主存1000AOPA的位数决定操作数的寻址范围程序浮动广泛用于转移指令PC大连理工大学 软件学院 赖晓晨相对寻址举例相对寻址举例 3*LDA # 0LDX # 0ADD X, DINXCPX # NBNE MDIV # NS
49、TA ANSMM+1M+2M+3相对寻址特征*M 随程序所在存储空间的位置不同而不同EA = ( M+3 ) 3 = M而指令 BNE 与 指令 ADD X, D 相对位移量不变 3* 指令 BNE操作数的有效地址为 3* 大连理工大学 软件学院 赖晓晨按字节寻址的相对寻址举例按字节寻址的相对寻址举例OP位移量2000 H2008 H8JMP * + 8OP06 H2000 H2008 H8设 当前指令地址 PC = 2000H转移后的目的地址为 2008H二字节指令故 JMP * + 8 指令 的第二字节为 2008H - 2002H = 06H因为 取出 JMP * + 8 后 PC =
50、2002H大连理工大学 软件学院 赖晓晨1010、堆栈寻址、堆栈寻址p堆栈的运行方式:堆栈的运行方式:后进先出、先进后出后进先出、先进后出p堆栈的种类:堆栈的种类:硬堆栈:寄存器型硬堆栈:寄存器型软堆栈:存储器型软堆栈:存储器型大连理工大学 软件学院 赖晓晨堆栈工作过程堆栈工作过程先进后出(一个入出口)栈顶地址 由 SP 指出 11FFFH +12000 H进栈 (SP) 1 SP出栈 (SP)+ 1 SP栈顶栈底2000 HSP2000 H1FFF HSP1FFFH栈顶栈底进栈出栈 1FFF H栈顶 2000 H栈顶大连理工大学 软件学院 赖晓晨堆栈指针与主存编址堆栈指针与主存编址 按 字
51、编址进栈出栈(SP) 1 SP(SP)+ 1 SP 按 字节 编址存储字长 16 位进栈出栈(SP) 2 SP(SP)+ 2 SP存储字长 32 位进栈出栈(SP) 4 SP(SP)+ 4 SP大连理工大学 软件学院 赖晓晨7.4 7.4 指令格式举例指令格式举例一、设计指令格式时要考虑的问题一、设计指令格式时要考虑的问题我们希望指令种类多、速度快、长度小、向上兼容我们希望指令种类多、速度快、长度小、向上兼容 操作类型:包括指令个数及操作的难易程度操作类型:包括指令个数及操作的难易程度 数据类型:确定哪些数据类型可以参与操作数据类型:确定哪些数据类型可以参与操作 指令格式:指字长是否固定、操作
52、码是否扩展、指令格式:指字长是否固定、操作码是否扩展、地址码个数、地址码位数地址码个数、地址码位数 寻址方式:指令寻址、操作数寻址寻址方式:指令寻址、操作数寻址 寄存器个数:寄存器的多少直接影响指令的执行寄存器个数:寄存器的多少直接影响指令的执行时间,以及编译器的设计时间,以及编译器的设计大连理工大学 软件学院 赖晓晨二、指令格式举例二、指令格式举例1 1、PDP-8PDP-8指令字长固定 12 位 操作码 间 页 地址码访存类指令0235411寄存器类指令 1 1 1 辅助操作码02 311I/O 类指令 1 1 0 设备 操作码02 31198P320P326请大家自己阅读大连理工大学 软
53、件学院 赖晓晨2 2、PDP-11PDP-11源地址OP4 6 6 16 16目的地址存储器地址1存储器地址2OP10 6 16目的地址存储器地址目的地址4 6 6源地址OP 10 6目的地址OP-CODE16OP-CODE指令字长有 16 位、32 位、48 位三种零地址 (16 位)一地址 (16 位)二地址 R R (16 位)二地址 R M (32 位)二地址 M M (48 位)扩展操作码技术大连理工大学 软件学院 赖晓晨3 3、IBM 360IBM 360OPR1R2 RR格式8 4 4OPR1XBD RX格式8 4 4 4 12OPR1R3BD RS格式8 4 4 4 12OPB
54、DI SI格式8 8 4 12二地址 R R基址加变址寻址二地址 R M三地址 R M基址寻址二地址 M M基址寻址立即数 MOPB1D1LB2D2 SS格式88412412基址寻址大连理工大学 软件学院 赖晓晨4 4、Intel 8086Intel 8086(1) 指令字长(2) 地址格式1 6 个字节MOV WORD PTR0204, 0138H 6 字节INC AX 1 字节一地址NOP 1 字节CALL段内调用 3 字节零地址 5 字节段间调用寄存器 寄存器寄存器 立即数寄存器 存储器ADD AX,BX 2 字节ADD AX,3048H 4 字节ADD AX,3048H 3 字节二地址
55、CALL大连理工大学 软件学院 赖晓晨7.5 RISC7.5 RISC技术技术一、一、RISCRISC的产生和发展的产生和发展 RISC(Reduced Instruction Set Computer) CISC(Complex Instruction Set Computer) VLSI技术的发展技术的发展 典型程序中典型程序中 80% 的语句仅仅使用处理机中的语句仅仅使用处理机中 20% 的指的指令令 复杂指令集计算机设计复杂、成本高、维护困难复杂指令集计算机设计复杂、成本高、维护困难 能否用能否用 20% 的简单指令组合不常用的的简单指令组合不常用的80% 的指令功的指令功能能 80
56、20 规律大连理工大学 软件学院 赖晓晨二、二、RISCRISC的主要特征的主要特征p 选用使用频度高的一些简单指令,复杂指令用简选用使用频度高的一些简单指令,复杂指令用简单指令组合。单指令组合。p 指令长度固定、指令格式种类少、寻址方式少。指令长度固定、指令格式种类少、寻址方式少。p 只有只有LOAD/STORELOAD/STORE指令访存。指令访存。p CPUCPU中有多个通用寄存器。中有多个通用寄存器。p 采用流水技术采用流水技术, ,一个时钟周期完成一条指令。一个时钟周期完成一条指令。p 采用组合逻辑实现控制器。采用组合逻辑实现控制器。p 采用优化的编译程序。采用优化的编译程序。大连理
57、工大学 软件学院 赖晓晨三、三、CISCCISC的主要特征的主要特征p 指令系统庞大复杂,各种指令使用频度差别大指令系统庞大复杂,各种指令使用频度差别大p 指令长度不固定、指令格式种类多,寻址方式多指令长度不固定、指令格式种类多,寻址方式多p 访存指令不受限制访存指令不受限制p CPUCPU中设有专用寄存器中设有专用寄存器p 大多数指令需要多个时钟周期执行完毕大多数指令需要多个时钟周期执行完毕p 采用微程序控制器采用微程序控制器p 难以用优化编译生成高效的目的代码。难以用优化编译生成高效的目的代码。大连理工大学 软件学院 赖晓晨四、四、RISCRISC和和CISCCISC的比较的比较p RIS
58、CRISC更能充分利用更能充分利用VLSIVLSI芯片的面积芯片的面积p RISCRISC更能提高计算机运算速度更能提高计算机运算速度 指令数目、指令格式、寻址方式少指令数目、指令格式、寻址方式少 通用寄存器多,采用组合逻辑通用寄存器多,采用组合逻辑 便于流水线操作便于流水线操作p RISCRISC便于设计、成本低、可靠性高便于设计、成本低、可靠性高p RISCRISC有利于编译程序代码优化有利于编译程序代码优化p RISCRISC不易实现指令系统兼容不易实现指令系统兼容大连理工大学 软件学院 赖晓晨五、五、RISCRISC计算机举例计算机举例p DLXDLX:教学用,多元未饱和型指令集结构:
59、教学用,多元未饱和型指令集结构 p PowerPCPowerPC:IBM/Apple/MotorolaIBM/Apple/Motorola,可伸缩性好,可伸缩性好、方便灵活、方便灵活 p MIPSMIPS:卖的最好的:卖的最好的RISC CPU RISC CPU p SPARCSPARC:SUN Microsystems,SUN Microsystems,可扩充处理器架构可扩充处理器架构 p 龙芯:中科院计算技术研究所龙芯:中科院计算技术研究所p ARMARM:ARMARM(Advanced RISC MachineAdvanced RISC Machine)公司)公司大连理工大学 软件学院
60、赖晓晨http:/ 软件学院 赖晓晨龙芯龙芯3B3Bp 龙芯龙芯3B3B是首款国产商用是首款国产商用8 8核处理器,主频达到核处理器,主频达到1GHz1GHz,支持向量运,支持向量运算加速,峰值计算能力达到算加速,峰值计算能力达到128GFLOPS128GFLOPS,具有很高的性能功耗比,具有很高的性能功耗比。龙芯。龙芯3B3B主要用于高性能计算机、高性能服务器、数字信号处主要用于高性能计算机、高性能服务器、数字信号处理等领域。理等领域。p 龙芯龙芯3B3B集成了集成了8 8个个6464位超标量处理器核,位超标量处理器核,每每个处理器核具有如下特点:个处理器核具有如下特点: 支持支持MIPS64MIPS64指
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 以教育技术为引擎开启个性化学习新纪元
- 医疗设备操作培训的线上线下教育模式探索
- 统编版语文三年级下册期末专项归类《拼音写汉字》提优卷(一)(含答案)
- 增强现实AR在教育评估中的运用研究
- 信息技术在特殊教育环境中的独特应用
- 2025年吉林省松原市宁江区吉林油田第十二中学中考模拟物理试题
- 统编版2024-2025学年一年级语文下册期末模拟试卷1(含答案)
- 教育科技融合的产物探究在线学习平台的优势与挑战
- 探索教育机器人在办公领域的应用前景
- 世界音乐节行业跨境出海项目商业计划书
- (参考)菲达公司国内电除尘器业绩表
- 步进式加热炉耐材砌筑施工方案
- GB-T12232-2005- 通用阀门 法兰连接铁制闸阀
- 大学生职业生涯规划与就业指导教案第5讲:兴趣探索
- 2022年中国电信店长技能四级认证教材
- 门店电表记录表
- 七年级劳技 花卉种植 花卉用途 PPT学习教案
- 常见散料堆积密度汇总-共10
- 企业劳动用工法律风险与防范
- 海洋牧场生态融合渔光互补项目资金申请报告写作模板
- 国际金融托马斯普格尔复习资料整理
评论
0/150
提交评论