版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章计算机指令系统对外经济贸易大学信息学院第一节指令系统计算机指令计算机的程序是由一系列机器指令组成的。指令就是要计算机执行某种操作的命令。第一节指令系统计算机指令集一台计算机中所有机器指令的集合,称为这台计算机的指令系统。第一节指令系统计算机指令系统类型复杂指令计算机系统CISC不断增加可实现复杂功能的指令和多种灵活的编址方式,甚至某些指令可支持高级语言语句归类后的复杂操作。一般CISC计算机所含的指令数目至少300条以上,有的甚至超过500条。VAX11/780计算机有303条指令,18种寻址方式。Pentium机也有191条指令,9种寻址方式。第一节指令系统RISC
特点(采用流水线技术)简单而统一格式的指令译码;大部分指令可以单周期执行只有LOAD/STORE可以访问存储器简单的寻址方式采用延迟转移技术采用LOAD延迟技术三地址指令格式较多的寄存器对称的指令格式第一节指令系统精简指令MIPS所有运算使用的数据都来自寄存器;访问存储器的指令只有读存储器数据到寄存器和从寄存器写数据到存储器;指令长度一致。指令位数和执行周期都相同。第一节指令系统计算机指令系统类型CISC与RISC的比较
RISC和CISC各有优势,而且界限并不那么明显。现代的CPU往往采用CISC的外围,内部加入了RISC的特性,如超长指令集CPU就是融合了RISC和CISC的优势,成为未来的CPU发展方向之一。第一节指令系统指令系统的要求完备性:完备性是指用汇编语言(机器指令)可以编写任何种程序。有效性:有效性是指利用该指令系统所编写的程序能够高效率地运行。兼容性:系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。指令的表现形式是机器语言,机器语言一般通过汇编来书写。第一节指令系统高级语言和低级语言高级语言如C,Java等,其语句和用法与具体机器的指令系统无关。低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,它们和具体机器的指令系统密切相关。第一节指令系统高级语言和低级语言比较高级语言汇编语言MIPSA=b+cAdda,b,cA=b-cSuba,b,cA=b+c-dSubt,c-dAdda,b,t第一节指令系统指令的三种类型ALU运算指令无论是两个寄存器间的运算,还是一个寄存器和一个立即数间的运算,本质上都是两个寄存器间的运算,结果存入第三个寄存器;存取数据指令寄存器地址和存储器地址(间址或变址)转移和跳转指令无条件转移和条件转移第一节指令系统指令的基本结构指令由2部分组成:操作码和操作数操作码——回答作什么指令的操作码OP表示该指令应进行什么性质的操作,如进行加法、减法、乘法、除法、取数、存数等等。不同的指令用操作码的不同编码来表示,每一种编码代表一种指令。如00001表示加法,00010表示作减法运算。
第一节指令系统操作码:组成操作码字段的位数一般取决于计算机指令系统的规模。较大的指令系统就需要更多的位数来表示每条特定的指令如IBM370机,有183条指令;指令的操作码需要8位。第一节指令系统指令的基本结构指令由2部分组成:操作码和操作数操作数——存放二进制数的寄存器或存储器一般指令包括0—3个操作数(0,1,2,3),每个操作数是由寄存器名或地址数值组成(与寻址方式有关)为存储、读写方便,指令选择字节的整数倍。第一节指令系统编码方式0操作数指令(只有操作码)计算机重新启动指令reset停机指令stop,halt,空操作nop指令格式为:操作码OP1操作数(地址)指令如自动“+1”、“-1”、“求反”,跳转jmp01指令格式为:操作码OP地址
第一节指令系统2操作数指令一个存储单元的数加上另一个存储单元addA,B,或addA,10或addA,(10)指令格式操作码OP第一操作数A1第二操作数A2二地址指令在计算机中得到了广泛的应用,但是在使用时有一点必须注意:指令执行之后,A1中原存的内容已经被新的运算结果替换了。第一节指令系统操作数类型地址数据:存储器地址、寄存器地址,实际上都是一种形式的数据。数值数据:计算机中使用的数值数据。指令长度
指令字长度:一个指令字包含二进制代码的位数。单字长指令,半字长指令,双字长指令机器字长:计算机能直接处理的二进制数据的位数。指令助记符——汇编语言用3~4个英文字母来表示操作码,操作地址可以是部件名,也可以是数字地址。必须用汇编语言翻译成二进制代码才能工作Pentium指令格式
指令长度可变,最短1个字节,最长12个字节,典型的CISC指令系统
指令系统—RISCMIPS指令格式数据加载/存储LDR1,30(R2)双字载入,偏移30LWR1,60(R2)字载入,偏移60LBR1,40(R3)字节载入,偏移40LHR1,100(R3)半字载入,偏移100SDR1,500(R4)双字节存储。。。。。。。指令系统—RISCMIPS指令格式运算指令(加减与或、移位)DADDUR1,R2,R3无符号加,结果送R1DADDIUR1,R2,#5(R2)+5结果送到R1DSLLR1,R3,#5(R3)左移5位结果送到R1。。。。。。。指令系统—RISCMIPS指令格式控制指令Jname无条件跳转,name送PCBEQZR6,nameifR6=0,name送PCBNER7,R3,nameR7!=R3时name送PCCallret。。。。。。。指令系统——CISCX86指令格式数据传送类指令一般传送指令:
MOVAX,BX数据交换指令:
XCHG堆栈操作指令:
PUSH,POP运算类指令算术运算指令:
加、减逻辑运算指令:
与、或
移位指令
:左右移
程序控制类指令
程序控制类指令用于控制程序的执行方向,并使程序具有测试、分析与判断的能力。指令系统指令的使用率Load26%Store10%Add 19%Compare5%Branch12%Or 9%第二节指令(汇编语言)与CPU资源计算机指令要通过CPU的硬件资源来实现其命令,计算机CPU的结构与指令密切相关,计算机指令是通过汇编语言表达的。本节介绍X86汇编语言与CPU内部资源、存储器的关系。通用16位寄存器4个AX、BX、CX和DX通用32位寄存器4个EAX、EBX、ECX和EDX第二节指令与CPU资源一、传送指令传送指令是使用最频繁的指令,它相对于高级语言里的赋值语句。指令的格式如下:MOV
Reg/Mem,Reg/Mem/Imm
其中:Reg—Register(寄存器),Mem—Memory(存储器),Imm—Immediate(立即数),它们可以是8位、16位或32位(特别指出其位数的除外)。第二节指令与CPU资源一、传送指令1、立即数寻址方式MOV
Reg/Mem,Imm
操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。立即数可以是8位、16位或32位,该数值紧跟在操作码之后。如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储。第二节指令与CPU资源一、传送指令MOV把?送到?1、立即数寻址方式MOV
Reg/Mem,Imm
例如:MOVAH,80H
ADDAX,1234H
MOVB1,12H
MOVW1,3456H
其中:B1、W1和D1分别是字节、字单元。第二操作数都是立即数,在汇编语言中,规定:立即数不能作为指令中的第一操作数。立即数寻址方式通常用于对通用寄存器或内存单元赋初值。地址、数据总线
。需要这条指令吗?第二节指令与CPU资源一、传送指令2、寄存器寻址方式MOV
Reg,Reg
指令所要的操作数存储在cpu内部寄存器中。在指令中指出所使用寄存器(即:寄存器的助忆符)的寻址方式称为寄存器寻址方式。源和目的操作数都是寄存器寻址方式如:MOVEAX,EBX
MOVAX,BX
MOVDH,BL等。需要寄存器,2条地址总线和数据线。第二节指令与CPU资源一、传送指令3、直接寻址方式MOV
Reg,Mem指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址方式为直接寻址方式。源操作数是存储单元
内存地址太长,物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成。X86系统寄存器可以是AL,AH,BL,BH,CL,CH,DL,DH中的任一个;对16位操作数,寄存器可以是AX,BX,CX,DX,SI,DI,SP或BP之一。第二节指令与CPU资源一、传送指令3、直接寻址方式假设有指令:MOVBX,[1234H],在执行时,(DS)=2000H,内存单元21234H的值为5213H。问该指令执行后,BX的值是什么?寄存器、寄存器、存储器、2寄存器地址总线,存储器地址和数据总线。第二节指令与CPU资源一、传送指令4.间接寻址MOV
Reg,[SReg]
间接寻址方式的操作数在存储器中。
操作数地址的偏移量包含在特殊寄存器BX,BP,SI和DI之一中。
数据段寄存器DS加上SI,DI,BX中的偏移量为操作数的地址。PA=[DS]16+[SI]
(2)举例
MOVAX,[SI]
寄存器,移位寄存器,加法器,地址总线,数据总线第二节指令与CPU资源一、传送指令5.相对寻址方式
MOV
Reg,[Sreg+Imm]
操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容和指令中的偏移量之和。
(2)举例
MOVAX,[SI+100H]
寄存器,移位寄存器,加法器,地址总线,数据总线第二节指令与CPU资源一、传送指令6.交换指令
XCHG
Reg/Mem,Reg/Mem
该指令的功能和MOV指令不同,后者是一个操作数的内容被修改,而前者是两个操作数都会发生改变。
(2)已知:AX=5678H,BX=1234H,指令XCHG
AX,BX执行后,AX和BX的值是什么?
解:这是两个寄存器内容进行交换,指令执行后,有:(AX)=1234H,(BX)=5678H。
第二节指令与CPU资源一、传送指令7.取有效地址指令LEA指令LEA是把一个内存变量的有效地址送给指定的寄存器。其指令格式如下:LEA
Reg,Mem该指令通常用来对指针或变址寄存器BX、DI或SI等置初值之用。第二节指令与CPU资源一、传送指令8.取段寄存器指令该组指令的功能是把内存单元的一个“低字”传送给指令中指定的16位寄存器,把随后的一个“高字”传给相应的段寄存器(DS、ES、FS、GS和SS)。其指令格式如下:LDS/LES/LFS/LGS/LSS
Reg,Mem例如:…POINTER
DD
12345678H…LDS BX,POINTER…第二节指令与CPU资源一、传送指令9.堆栈操作指令堆栈是一个重要的数据结构,它具有“先进后出”的特点,通常用来保存程序的返回地址。它主要有两大类操作:进栈操作和出栈操作。1)、进栈操作、PUSH指令格式:PUSH
Reg/Mem
PUSH
Imm
PUSHA第二节指令与CPU资源一、传送指令9.堆栈操作指令2)POP指令格式:POP
Reg/Mem弹出一个字,系统自动完成两步操作:操作数←(SP),SP←SP-2;弹出一个双字,系统自动完成两步操作:操作数←(ESP),ESP←ESP-4。、POPA第二节指令与CPU资源二、运算指令1、加法指令指令的格式:操作 目的操作数,源操作数ADD
Reg/Mem,Reg/Mem/Imm指令的功能是把源操作数的值加到目的操作数中,结果存在目的操作数中。使用的资源寄存器,运算器,存储器,总线第二节指令与CPU资源二、运算指令2、加1指令INC
指令的格式:操作 目的操作数INC
Reg/Mem
指令的功能是把操作数的值加1
。使用的资源寄存器,运算器,存储器,总线第二节指令与CPU资源二、运算指令例3已知有二个16位数d1和d2(用数据类型DD说明),编写程序片段把d2的值加到d1中。MOV AX,d1ADD AX,d2MOV d1,AX第二节指令与CPU资源二、运算指令3、减法指令指令的格式:操作 目的操作数,源操作数SUB
Reg/Mem,Reg/Mem/Imm指令的功能是从目的操作数中减去源操作数,结果放在目的操作数中。
第二节指令与CPU资源二、运算指令4、减1指令DEC指令的格式:
操作 目的操作数DEC
Reg/Mem指令的功能是从目的操作数中减去1。
第二节指令与CPU资源二、运算指令例
已知有二个数d1和d2,编写程序片段从d1中减去d2的值。MOV AX,d1SUB AX,d2MOV d1,AX第二节指令与CPU资源二、运算指令5、逻辑与操作指令指令的格式:AND
Reg/Mem,Reg/Mem/Imm
受影响的资源寄存器,运算器,存储器,总线6、逻辑或操作指令OR
指令的格式:OR
Reg/Mem,Reg/Mem/Imm
第二节指令与CPU资源二、运算指令7、逻辑非操作指令指令的格式:NOT
Reg/Mem
受影响的资源寄存器,存储器,总线8、逻辑异或操作指令指令的格式:XOR
Reg/Mem,Reg/Mem/Imm9、求补码指令NEGReg/Mem第二节指令与CPU资源二、运算指令10、算术移位指令:算术左移SAL(ShiftAlgebraicLeft)和算术右移SAR(ShiftAlgebraicRight)。它们的指令格式如下:SAL/SAR
Reg/Mem,CL/Imm
最低/高位补0。操作数的初值执行的指令执行后操作数的内容(AH)=12HSAL
AH,1(AH)=24H(AH)=12HSAR
AH,1(AH)=09H第二节指令与CPU资源二、运算指令11、比较运算指令CMP:指令格式CMP
Reg/Mem,Reg/Mem/Imm
指令的功能:用第二个操作数去减第一个操作数,并根据所得的差设置有关标志位,为随后的条件转移指令提供条件。但并不保存该差,所以,不会改变指令中的操作数。
第二节指令与CPU资源三、控制指令(转移指令)1、循环指令循环指令LOOP格式:LOOP标号
标号是指令地址的标志符号。有了标号,当程序中的其他语句跳转该语句时就不需要写具体语句地址了。
循环指令的功能描述:循环指令LOOP的功能
(CX)=(CX)-1或(ECX)=(ECX)-1;如果(CX)≠0或(ECX)≠0,转向“标号”所指向的指令,否则,终止循环,执行该指令下面的指令。第二节指令与CPU资源三、控制指令(转移指令)例
编写一段程序,求1+2+…+1000之和,并把结果存入AX中。解:方法1:因为计数器CX只能递减,所以,可把求和式子改变为:1000+…+1。
XOR AX,AX累加器AX清零
MOVCX,1000Dagain:ADDAX,CX;计算过程:1000+…+1LOOPagain第二节指令与CPU资源三、控制指令(转移指令)例
编写一段程序,求1+2+…+1000之和,并把结果存入AX中。解:方法2:不用循环计数器进行累加,求和式子仍为:1+2+…+999+1000。
XOR AX,AX累加器AX清零
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《细胞免疫检测技术》课件
- 微课人力资源管理课程简介财经管理人力资源管理系
- n4护士述职报告
- 中小学水上交通安全知识
- 业务销售工作规划
- 低血糖的预防及应急预案
- 《公司法概论》课件
- 山东省枣庄市2024年中考化学真题【附答案】
- 医疗学术报告
- 数学学案:课堂导学“且”与“或”“非”(否定)
- 班主任工作经验分享如何成为优秀的班主任
- 古诗文系列课件模板-山房春事二首
- 2024年上海市第二十七届初中物理竞赛初赛试题及答案
- 2011年认识实习报告
- 水务公司招聘笔试题库及答案
- 医疗垃圾分类与处理的人员培训与资质要求
- 审核的改进计划和措施
- 《旅游管理》专业调研报告
- 2024野生哺乳动物及栖息地调查技术规程
- 2024年中医药知识与技能竞赛题库附含答案
- 2023年6月大学生英语四级真题试卷及详细答案(三套)
评论
0/150
提交评论