北航计算机组成原理讲义_2指令系统ppt课件_第1页
北航计算机组成原理讲义_2指令系统ppt课件_第2页
北航计算机组成原理讲义_2指令系统ppt课件_第3页
北航计算机组成原理讲义_2指令系统ppt课件_第4页
北航计算机组成原理讲义_2指令系统ppt课件_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章第三章 数据信息表示与指令系统数据信息表示与指令系统本讲内容本讲内容v数的机器编码及其表示简单回想数的机器编码及其表示简单回想v定点数定点整数定点小数的表示定点数定点整数定点小数的表示v浮点数的表示浮点数的表示v十进制数的表示十进制数的表示v字符的表示字符的表示v指令系统的根本概念重点指令系统的根本概念重点v指令格式指令格式v寻址方式寻址方式v指令类型指令类型v指令系统举例指令系统举例v指令系统的设计重点指令系统的设计重点v指令系统的设计根据指令系统的设计根据v指令格式设计指令格式设计v数的机器编码及其表示数的机器编码及其表示(简单回想简单回想)v字符的表示字符的表示v指令系统指令系统v

2、指令系统举例指令系统举例v指令系统的设计指令系统的设计1.1 1.1 数的机器编码及其表示数的机器编码及其表示v要处理的问题要处理的问题v第一个问题:正数与负数的符号问题?第一个问题:正数与负数的符号问题?v第二个问题:小数点的表示问题?第二个问题:小数点的表示问题?v第三个问题:零的表示问题?第三个问题:零的表示问题?v第三个问题:整数与小数的混合表示问题?第三个问题:整数与小数的混合表示问题?v处理的原那么:二进制处理一切处理的原那么:二进制处理一切1.1 1.1 数的机器编码及其表示数的机器编码及其表示v第一个问题:正数与负数?第一个问题:正数与负数?v处理方法:一切数前面设置符号位,处

3、理方法:一切数前面设置符号位,1表示负表示负数,数,0表示正数,第一位不具备数值的性质。表示正数,第一位不具备数值的性质。X = + 90(X = + 90(十进制真值十进制真值) ) = 1011010 ( = 1011010 (二进制真值二进制真值) )用八位二进制表示:用八位二进制表示: 0 1011010 0 1011010X = X = 90( 90(十进制真值十进制真值) ) = = 1011010 ( 1011010 (二进制真值二进制真值) )用八位二进制表示用八位二进制表示 1 1011010 1 10110101.1 1.1 数的机器编码及其表示数的机器编码及其表示v第二个

4、问题:小数点?第二个问题:小数点?v惹不起还躲不起!惹不起还躲不起!v将数分成定点整数和定点小数,没有小数点的表示将数分成定点整数和定点小数,没有小数点的表示问题了,小数点在类型里在他心里。问题了,小数点在类型里在他心里。定点整数定点小数1.1 1.1 数的机器编码及其表示数的机器编码及其表示v第三个问题:零的符号问题?第三个问题:零的符号问题?v一个数不是正数第一位是一个数不是正数第一位是0就是负数第一位就是负数第一位是是1。v零既不是正数又不是负数,符号位怎样办?零既不是正数又不是负数,符号位怎样办?v没方法,就分正零和负零吧!没方法,就分正零和负零吧!X = + 0(X = + 0(十进

5、制真值十进制真值) )用八位二进制表示用八位二进制表示原码原码 0 0000000 0 0000000发码发码 0 0000000 0 0000000补码补码 0 0000000 0 0000000X = X = 0( 0(十进制真值十进制真值) )用八位二进制表示用八位二进制表示原码原码 1 0000000 1 0000000发码发码 1 1111111 1 1111111补码补码 0 0000000 0 0000000发现:发现:0的补码表示是一致的。机器中最常用的就是补码。的补码表示是一致的。机器中最常用的就是补码。1.1 1.1 数的机器编码及其表示数的机器编码及其表示v第四个问题:整

6、数与小数的混合表示?第四个问题:整数与小数的混合表示?v将数分成两部分:尾数和阶将数分成两部分:尾数和阶v浮点数的表示。浮点数的表示。25.75= 0.2575 10 2 (十进制十进制) = 11001.11 (二进制真值二进制真值 = 0.1100111 10 101(二进制二进制) 尾数:尾数: 0.1100111 二进制二进制 阶:阶:101二进制二进制 底:底:10二进制二进制1.1 1.1 数的机器编码及其表示数的机器编码及其表示v浮点数的表示浮点数的表示25.75= 0.2575 10 2 (十进制十进制) = 11001.11 (二进制真值二进制真值 = 0.1100111 1

7、0 101(二进制二进制) 尾数:尾数: 0.1100111 阶:阶:101 浮点数表示阶和尾数均为补码:浮点数表示阶和尾数均为补码:010101100111浮点数格式浮点数格式留意:浮点数的规格化表示范围和机器零等问题!留意:浮点数的规格化表示范围和机器零等问题!1.1 1.1 数的机器编码及其表示数的机器编码及其表示v总结定点整数总结定点整数v真值真值 X, 用用 n 位含符号位二进制编码表示位含符号位二进制编码表示 XXXn原21XXXn反 21XXXn补2留意:不同编码表示的范围!留意:不同编码表示的范围!1.1 1.1 数的机器编码及其表示数的机器编码及其表示v补码表示与真值的关系补

8、码表示与真值的关系v真值真值 X, 用用 n 位含符号位二进制编码表示位含符号位二进制编码表示 ,.Xxx xxon补121Xxxniinn i 01111221.2 1.2 定点数的加减法定点数的加减法v补码加减法规那么补码加减法规那么 ABAB补补补 ABAB 补补补 BBn补补2v加减法的溢出与判别加减法的溢出与判别v溢出问题:加法结果超出表示范围溢出问题:加法结果超出表示范围v溢出判别:采用双符号位补码溢出判别:采用双符号位补码v双符号位补码:双符号位补码:00表示正数,表示正数,11表示负数,表示负数,01和和10非非法。法。v当加法结果的符号位出现当加法结果的符号位出现01或或10

9、时表示结果出现溢出。时表示结果出现溢出。1.3 1.3 十进制数的机器表示十进制数的机器表示v十进制数的机器表示十进制数的机器表示vBCD码码8421码码v余余 3 码码BCD码码余余3码码000000110001010000100101十进制数十进制数012001101103010001114010110005011010016011110107100010118100111009v数的机器编码及其表示数的机器编码及其表示v字符的表示字符的表示v指令系统指令系统v指令系统举例指令系统举例v指令系统的设计指令系统的设计1.4 1.4 字符的表示字符的表示v西文字符的表示西文字符的表示vASCI

10、I (American Standard Code for Information Interchange)码码v字模字模v中文字符的表示中文字符的表示v国标码,内码国标码,内码v字模字库字模字库v输入编码输入编码v数的机器编码及其表示数的机器编码及其表示v字符的表示字符的表示v指令系统指令系统v指令系统举例指令系统举例v指令系统的设计指令系统的设计2.1 2.1 指令格式指令格式v机器指令的要素机器指令的要素v操作码操作码(Operation Code):指明进展的何种操作如:指明进展的何种操作如 ADD, I/Ov源操作数地址源操作数地址(Source Operand Reference)

11、:参与操作的:参与操作的操作数的地址,能够有多个。操作数的地址,能够有多个。v目的操作数地址目的操作数地址(Destination Operand Reference):保管:保管操作结果的地址。操作结果的地址。v下一条指令的地址下一条指令的地址(Next Instruction Reference):指明下:指明下一条要运转的指令的位置,普通指令是按顺序依次执行的一条要运转的指令的位置,普通指令是按顺序依次执行的,所以绝大多数指令中并不显示的指明下一条指令的地址,所以绝大多数指令中并不显示的指明下一条指令的地址,也就是说,指令格式中并不包含这部分信息。只需少数,也就是说,指令格式中并不包含这

12、部分信息。只需少数指令需求显示指明下一条指令的地址。指令需求显示指明下一条指令的地址。v操作数的来源操作数的来源v存储器存储器地址存储器存储器地址v存放器存放器地址存放器存放器地址v输入输出端口输入输出端口地址输入输出端口输入输出端口地址2.1 2.1 指令格式指令格式v操作数的类型操作数的类型v地址操作数地址,指令地址地址操作数地址,指令地址v数值整型数或定点数,浮点数,十进制数数值整型数或定点数,浮点数,十进制数v字符字符v逻辑型数逻辑型数v指令的表示指令的表示v机器表示:二进制代码机器表示:二进制代码v v符号化表示:助记符符号化表示:助记符v MOV AX,BXOpCodeS. Ope

13、rand Ref.D. Operand Ref.2.1 2.1 指令格式指令格式v地址的数目地址的数目v三地址:三地址:Des (Sur1) OP (Sur2)OPDes AddSur1 AddSur2 Add双地址:Des (Sur) OP (Des)OPDes AddSur Add单地址:累加器作为其中一个操作数的双操作数型,或单操作数型OP Add无地址:隐含操作数型,或无操作数型OP2.1 2.1 指令格式指令格式v操作码构造操作码构造v固定长度操作码:操作码长度占二进制位数固固定长度操作码:操作码长度占二进制位数固定不变。定不变。v硬件设计简单硬件设计简单v指令译码时间开销较小指令译

14、码时间开销较小v指令空间效率较低指令空间效率较低v可变长度操作码:操作码长度随指令地址数目的不可变长度操作码:操作码长度随指令地址数目的不同而不同。同而不同。v硬件设计相对复杂硬件设计相对复杂v指令译码时间开销教大指令译码时间开销教大v指令空间利用率较高指令空间利用率较高v指令长度指令长度v定长指令系统定长指令系统v变长指令系统:普通为字节的整数倍变长指令系统:普通为字节的整数倍2.1 2.1 指令格式指令格式v关于指令扩展操作码的举例关于指令扩展操作码的举例v1. 设某机器采用固定长度指令系统,指令长度为设某机器采用固定长度指令系统,指令长度为16位,包括位,包括 3 地址指令地址指令15条

15、、双地址指令条、双地址指令10条和条和假设干单地址指令,假定每个地址占假设干单地址指令,假定每个地址占4位,请问,位,请问,该指令系统最多可以包容多少单地址指令,并设计该指令系统最多可以包容多少单地址指令,并设计该指令系统的操作码编码方案。该指令系统的操作码编码方案。v根本思绪根本思绪v1. 每一条指令需求一个独一的操作码编码。每一条指令需求一个独一的操作码编码。v2. 不同类型的指令应该具有不同的标识。不同类型的指令应该具有不同的标识。v3. 采用扩展操作码方案。采用扩展操作码方案。2.2 2.2 寻址方式寻址方式v寻址:根据方式地址查找到操作数的过程。寻址:根据方式地址查找到操作数的过程。

16、v方式地址与有效地址方式地址与有效地址v方式地址:指令中直接给出的地址编码。方式地址:指令中直接给出的地址编码。v有效地址:根据方式地址和寻址方式计算出来的操作数有效地址:根据方式地址和寻址方式计算出来的操作数在内存单元中的地址。在内存单元中的地址。操作码目的地址源地址指令编码方式地址操作数操作数Data内存Add有效地址:操作数有效地址:操作数Data的内存单的内存单元地址元地址Add2.2 2.2 寻址方式寻址方式v寻址方式寻址方式v定义:指令代码中地址字段的一部分,指明操作数的获定义:指令代码中地址字段的一部分,指明操作数的获取方式或操作数地址的计算方式。取方式或操作数地址的计算方式。v

17、指令中每一个地址字段均有其寻址方式编码或隐含寻指令中每一个地址字段均有其寻址方式编码或隐含寻址方式址方式OP目的地址源地址目的操作数寻址方式目的操作数寻址方式Add.目的地址目的地址源操作数寻址方式源操作数寻址方式Add源地址源地址2.2 2.2 寻址方式寻址方式v指令代码和寻址描画中有关缩写的商定指令代码和寻址描画中有关缩写的商定vOP:操作码:操作码vDes:目的操作数地址:目的操作数地址vSur:源操作数地址:源操作数地址vA或或Add: 方式地址内存地址方式地址内存地址vMod:寻址方式:寻址方式vRn : 通用存放器通用存放器vRx :变址存放器:变址存放器vRb : 基址存放器基址

18、存放器vSP:堆栈指针存放器:堆栈指针存放器vEA :有效地址:有效地址vData :操作数:操作数vOperand :操作数:操作数vX:表示对象:表示对象X的内容值,如的内容值,如Rn表示存放器表示存放器Rn的内容值,的内容值,A:内存中地址为:内存中地址为A的单元的内容。的单元的内容。vImme. Data : 立刻数立刻数vXXH:16进制数进制数XX2.2 2.2 寻址方式寻址方式v立刻寻址立刻寻址v操作数直接在指令代码中给出。操作数直接在指令代码中给出。OPDesImme. DataModv阐明阐明v立刻寻址只能作为双操作数指令的源操作数。立刻寻址只能作为双操作数指令的源操作数。v

19、Operand = Imme. Datav例:例:MOV AX,1000H源操作数源操作数v思索思索v立刻寻址的操作数在什么地方,存储器立刻寻址的操作数在什么地方,存储器 or 存放器?存放器?v立刻数的地址?立刻数的地址?2.2 2.2 寻址方式寻址方式v存放器直接寻址存放器直接寻址v操作数在存放器中,指令地址字段给出存放器的地址操作数在存放器中,指令地址字段给出存放器的地址编码编码vEA = Rn, Operand = (Rn)v例:例:MOV BX, AXOPDesRnModData通用存放器组通用存放器组GR2.2 2.2 寻址方式寻址方式v存储器直接寻址存储器直接寻址v操作数在存储器

20、中,指令地址字段直接给出操作数在存操作数在存储器中,指令地址字段直接给出操作数在存储器中的地址储器中的地址vEA = A, Operand = (A)v例:例:MOV AX, 1000HOPDesAModData存储器存储器2.2 2.2 寻址方式寻址方式v存放器间接寻址存放器间接寻址v操作数在存储器中,指令地址字段中给出的存放器的内操作数在存储器中,指令地址字段中给出的存放器的内容是操作数在存储器中的地址。容是操作数在存储器中的地址。vEA = (Rn), Operand = (Rn)v例:例:MOV AX, BXOPDesRnModDataA存放器存放器RnRn存储器存储器A2.2 2.2

21、 寻址方式寻址方式v存储器间接寻址存储器间接寻址v操作数在存储器中,指令地址字段中给出的存储器地址操作数在存储器中,指令地址字段中给出的存储器地址的单元内容是操作数在存储器中的地址。的单元内容是操作数在存储器中的地址。vEA = (A1), Operand = (A1)v例:例:MOV R1, (1000H) PDP-11的指令的指令OPDesA1ModDataA2存储器存储器A2A12.2 2.2 寻址方式寻址方式v基址寻址基址寻址v操作数在存储器中,指令地址字段给出一基址存放器和操作数在存储器中,指令地址字段给出一基址存放器和一方式地址,基变址存放器的内容与方式地址之和是操一方式地址,基变

22、址存放器的内容与方式地址之和是操作数的内存地址。作数的内存地址。vEA = (Rb)+A, Operand = (Rb)+A)v例:例:MOV AX, 1000HBXOPDesAMod RbN存放器存放器RbRb+DataA+N存储器存储器AA+1基址寻址的作用:较短的方式地址长度可以实现较大的基址寻址的作用:较短的方式地址长度可以实现较大的存储空间的寻址。存储空间的寻址。2.2 2.2 寻址方式寻址方式v变址寻址变址寻址v操作数在存储器中,指令地址字段给出一变址存放器和操作数在存储器中,指令地址字段给出一变址存放器和一方式地址,变址存放器的内容与方式地址之和是操作一方式地址,变址存放器的内容

23、与方式地址之和是操作数的内存地址。数的内存地址。vEA = (Rx)+A, Operand = (Rx)+A)v有的系统中,变址寻址完成后,变址存放器的内容将自有的系统中,变址寻址完成后,变址存放器的内容将自动进展调整。动进展调整。Rx (Rx) + 操作数操作数Data的字节数的字节数v例:例:MOV AX, 1000HDIOPDesAModRxN存放器存放器RxRx+DataA+N存储器存储器AA+1 变址寻址的作用:数组操作,串操作变址寻址的作用:数组操作,串操作N寻址后存放器寻址后存放器RxRx2.2 2.2 寻址方式寻址方式v相对寻址相对寻址v基址寻址的特例,由程序计数器基址寻址的特

24、例,由程序计数器PC作为基址存放器,作为基址存放器,指令中给出的方式地址作为位移量,二者之和是操作数指令中给出的方式地址作为位移量,二者之和是操作数的内存地址。的内存地址。vEA = (PC)+A, Operand = (PC)+A)v例:例:JNE AOPDesAModN PC+DataA+N存储器存储器AA+12.2 2.2 寻址方式寻址方式v堆栈寻址堆栈寻址v堆栈的构造:一段内存区域。堆栈的构造:一段内存区域。v栈底,栈顶,栈底,栈顶,v堆栈指针堆栈指针(SP):是一个特殊存放器部件:是一个特殊存放器部件, 指向栈顶指向栈顶v堆栈操作:堆栈操作:PUSH ( 从存放器到堆栈从存放器到堆栈

25、),POP (从堆栈到从堆栈到存放器存放器)栈底栈底栈顶栈顶ASP堆栈堆栈2.2 2.2 寻址方式寻址方式v堆栈寻址堆栈寻址v压栈操作:压栈操作:PUSH Rn,假定存放器,假定存放器Rn为为16位存放器位存放器v (SP) (Rn), SP (SP)-2ASPA堆栈堆栈A-2DataRnDataA-2SP2.2 2.2 寻址方式寻址方式v堆栈寻址堆栈寻址v出栈操作:出栈操作:POP Rn,假定存放器,假定存放器Rn为为16位存放器位存放器v SP (SP) + 2, Rn (SP)A-2SPRnA堆栈堆栈A-2DataASPData2.2 2.2 寻址方式寻址方式v页面寻址页面寻址v将程序计

26、算器将程序计算器PC的高位部分与方式地址拼接构成操作的高位部分与方式地址拼接构成操作数的有效地址。数的有效地址。vEA (PC)H, 拼接拼接 Av内存分位假设干页,内存分位假设干页, (PC)H,指明页地址,方式地址指明页地址,方式地址A阐阐明页内的位移量明页内的位移量OPDes0FHMod100AH PCData100FH存储器存储器拼拼10H2.2 2.2 指令类型指令类型v 数据传送指令:数据传送指令:Move,Store,Load,Set,Clear,Exchange v 算术运算指令:包括定点数、浮点数运算和十进制数运算算术运算指令:包括定点数、浮点数运算和十进制数运算 v 逻辑运

27、算指令:逻辑运算指令:And,Or,Not,Xor,Compare,Test v 移位指令移位指令v 算术移位,逻辑移位,循环移位算术移位,逻辑移位,循环移位v 程序控制类指令程序控制类指令v 几个重要的存放器:程序计数器几个重要的存放器:程序计数器PC,程序形状字,程序形状字PSW或标志存放器或标志存放器,堆栈指针,堆栈指针SPv 转移指令:无条件转移指令,有条件转移指令转移指令:无条件转移指令,有条件转移指令v 循环控制指令循环控制指令LOOPv 子程序调用与前往指令子程序调用与前往指令CALL,RETv 程序中断指令及前往程序中断指令及前往INT,IRETv 串操作指令串操作指令MOVS

28、B,MOVSWv I/O指令:指令:IN,OUTv 堆栈指令:堆栈指令:PUSH,POPv数的机器编码及其表示数的机器编码及其表示v字符的表示字符的表示v指令系统指令系统v指令系统举例指令系统举例v指令系统的设计指令系统的设计8086/80888086/8088指令系统举例指令系统举例3.1 80863.1 808680888088指令系统指令系统:CPU:CPU与存储器构造与存储器构造v80868088CPU存放器构造存放器构造ALU内部总线AHALBHBLCHCLDHDLSPBPSIDIFLAGS3.1 80863.1 808680888088指令系统指令系统: CPU: CPU与存储器构

29、造与存储器构造v存储器及其存储器地址构造存储器及其存储器地址构造v主存容量为主存容量为1M220,可直接访问的主存物,可直接访问的主存物理地址为理地址为20位。超越位。超越1M的存储空间经过其他的存储空间经过其他方式访问。方式访问。v80868088机器字长机器字长16位,一切存放器长度位,一切存放器长度位位16位,数据总线位,数据总线16位。位。v主存采用分段的构造主存采用分段的构造v主存存储单元的地址构成:段基址主存存储单元的地址构成:段基址16 bits: 段内偏移段内偏移16 bitsv可执行程序可执行程序.EXE的存储构造:代码段的存储构造:代码段(Code Segment),数据段

30、,数据段(Data Segment),堆栈段堆栈段(Stack Segment),扩展数据段可选,扩展数据段可选v命令程序的存储构造:代码段,数据段和命令程序的存储构造:代码段,数据段和堆栈段必需是同一个段。所以命令程序最大为堆栈段必需是同一个段。所以命令程序最大为64KB存储空间。存储空间。3.1 80863.1 808680888088指令系统指令系统: CPU: CPU与存储器构造与存储器构造v存储器地址构造与计算存储器地址构造与计算16位段基址16位段基址(2010H)16位段内偏移量16位段内偏移量(0240H)20100H左移4位左移4位+20位物理地址位物理地址(20340H)3

31、.1 80863.1 808680888088指令系统指令系统: CPU: CPU与存储器构造与存储器构造v存储器单元构造存储器单元构造v按字节单元编址按字节单元编址10H20H30H40H50H60H70H80H2000H2002H2004H2006H存储器存储器高字节低字节v字节单元字节单元v2000H20Hv2001H10Hv字单元字单元v2000H1020Hv2004H5060Hv双字单元双字单元v2000H30401020H3.2 80863.2 808680888088指令系统指令系统: :存放器存放器v通用存放器:数据存放器通用存放器:数据存放器(Data Register)vA

32、X,BX,CX,DX16位;位;vAH,AL,BH,BL,CH,CL,DH,DL8位位v各存放器原那么上没有固定的运用各存放器原那么上没有固定的运用vAX:累加器:累加器vBX:基址存放器:基址存放器vCX:计数器:计数器vDX:数据存放器:数据存放器AHALBHBLCHCLDHDLAXBXCXDX通用存放器通用存放器8 bits8 bits3.2 80863.2 808680888088指令系统:存放器指令系统:存放器v通用存放器:指针存放器通用存放器:指针存放器(Pointer Register)v堆栈指针:堆栈指针:SP16 位位v基址指针:基址指针:BP16位,默许指向堆栈段位,默许指

33、向堆栈段通用存放器通用存放器SPBPSIDI16 bitsv通用存放器:变址存放器通用存放器:变址存放器(Index Register)vSI,DI:16位位v普通情况下,二者运用上无差别,在串操作普通情况下,二者运用上无差别,在串操作中,中,SI 对应源操作数,对应源操作数,DI对应目的操作数对应目的操作数3.2 80863.2 808680888088指令系统指令系统: :存放器存放器v通用存放器:段存放器通用存放器:段存放器(Segment Register)v代码段代码段(Code Segment),数据段,数据段Data Segment,堆,堆栈段栈段Stack Segment,扩展

34、数据段,扩展数据段Extend data Segmentv代码段存放器:代码段存放器:CS16 bitsv数据段存放器:数据段存放器:DS 16 bitsv堆栈段存放器:堆栈段存放器:SS 16 bitsv扩展段存放器:扩展段存放器:ES 16 bits段存放器段存放器CSDSSSES16 bits3.2 80863.2 808680888088指令系统指令系统: :存放器存放器v指令指针指令指针IPInstruction PointervIP16 bits)指向代码段中下一条要执行的指令。指向代码段中下一条要执行的指令。vCS:IP 构成下一次要执行的指令的内存地址。构成下一次要执行的指令的

35、内存地址。v标志存放器标志存放器FLAGSFlags Registerv16位,记录当前位,记录当前CPU运转程序的各种形状运转程序的各种形状v进位标志位进位标志位 CFCarry Flagv奇偶标志位奇偶标志位 PFParity Flagv辅助进位标志位辅助进位标志位 AFAuxitiary Flagv零值标志位零值标志位 ZFZero Flagv符号标志位符号标志位 SFSign Flagv溢出标志位溢出标志位 OFOverflow Flagv单步跟踪标志位单步跟踪标志位 TFTrace Flagv中断允许标志位中断允许标志位 IFInterrupt-enable Flagv方向标志位方向

36、标志位 DFDirection FlagOF DF IF TF SF ZFAFPFCF01234567891011121314153.3 80863.3 808680888088指令系统指令系统: :寻址方式寻址方式v立刻寻址立刻寻址vMOV AX,1234H 指令代码:指令代码:B83412HB8H34H12H存储器存储器CS:IP3.3 80863.3 808680888088指令系统指令系统: :寻址方式寻址方式v存放器直接寻址存放器直接寻址vMOV AX, BX 指令代码:指令代码:89D8H89HD8H存储器存储器CS:IP3.3 80863.3 808680888088指令系统指令

37、系统: :寻址方式寻址方式v存储器直接寻址存储器直接寻址vMOV AX, 0100H 指令代码:指令代码:A10001Hv等价于等价于 MOV AX,DS:0100HvEA = DS:0100HA1H00H01H存储器存储器CS:IP3.3 80863.3 808680888088指令系统指令系统: :寻址方式寻址方式v存放器间接寻址存放器间接寻址vMOV AX, BX 指令代码:指令代码:8B07Hv等价于等价于 MOV AX,DS:BXvEA = DS: (BX)8BH07H存储器存储器CS:IPMOV BH,BP = MOV BH,SS:BPMOV CX,SI = MOV CX,DS:S

38、IMOV DI,BX = MOV DS:DI,BX3.3 80863.3 808680888088指令系统指令系统: :寻址方式寻址方式v基址变址寻址基址变址寻址vMOV AX, 1000HBX 指令代码:指令代码:8B870001Hv等价于等价于 MOV AX, DS:BX1000HvEA = DS: (BX)+1000H8BH87H00H01H存储器存储器CS:IP3.3 80863.3 808680888088指令系统指令系统: :寻址方式寻址方式v基址变址寻址基址变址寻址vMOV AX, 1000HBXSI 指令代码:指令代码:8B800001Hv等价于等价于 MOV AX, DS:B

39、X+SI+1000HvEA = DS: (BX)+(SI)+1000Hv基址存放器只能选:基址存放器只能选:BX,BPv变址存放器只能选:变址存放器只能选:SI,DIv基址存放器基址存放器BX:默许:默许DS段段v基址存放器基址存放器BP:默许:默许SS段段8BH80H00H01H存储器存储器CS:IPMOV AX,10HBXDI = MOV AX,DS:BX+DI+10HMOV AL,20HBPSI = MOV AL,SS:BP+SI+20H3.3 80863.3 808680888088指令系统指令系统: :寻址方式寻址方式v串操作寻址串操作寻址v串操作指令串操作指令MOVSBMOVSW隐

40、含的寻址方隐含的寻址方式式v源操作数地址源操作数地址 DS: (SI)v目的操作数地址目的操作数地址 ES: (DI)v寻址完成后寻址完成后SI,DI自动调整根据方向标志位自动调整根据方向标志位DF调整调整MOV SI,1000HMOV DI,3000HMOV CX,0100HCLDREP MOVSB0100HBytes1000H0100HBytes3000H3.3 80863.3 808680888088指令系统指令系统: :寻址方式寻址方式vI/O寻址寻址vI/O指令特有的寻址方式指令特有的寻址方式vIN AL,DXvOUT DX,ALvI/O端口地址:端口地址:12位端口地址位端口地址v

41、I/O端口:端口:I/O接口部件中可访问的空间存接口部件中可访问的空间存放器放器向向COM1口发送字符口发送字符AMOV DX, 3F8HMOV AL, 41HOUT DX, AL3.4 80863.4 808680888088指令系统指令系统: :指令格式与编码指令格式与编码v普通双操作数指令格式与编码普通双操作数指令格式与编码vRR型或型或RS型,必有一个操作数在存放器中存放型,必有一个操作数在存放器中存放器直接寻址器直接寻址v长度长度26个字节前个字节前2个字节必需个字节必需vOpcode:操作码:操作码6位位vd: 方向字段方向字段1位。在第二个字节中,位。在第二个字节中,REG确定确

42、定一个操作数存放器直接寻址,一个操作数存放器直接寻址,MOD和和R/M确确定零一个操作数的寻址方式。方向字段定零一个操作数的寻址方式。方向字段d阐明阐明REG确定的是源操作数还是目的操作数。确定的是源操作数还是目的操作数。vd=1, REG确定目的操作数,确定目的操作数,MOD+R/M确定源操确定源操作数作数vd=0, REG确定源操作数,确定源操作数,MOD+R/M确定目的操确定目的操作数作数vW:字字节字段:字字节字段1位:操作数是字节位:操作数是字节8位位还是字还是字16位位vW=1,字,字16位位vW=0,字节,字节8位位OpcodeDisp_LowDisp_HighImme. Dat

43、a_LowImme.Data_HighREGR/MMODWd61 1 23388883.4 80863.4 808680888088指令系统指令系统: :指令格式与编码指令格式与编码v普通双操作数指令格式与编码续普通双操作数指令格式与编码续vREG:存放器字段,指明两个操作数中存放器直:存放器字段,指明两个操作数中存放器直接寻址的那个操作数。与接寻址的那个操作数。与W字段配合运用。字段配合运用。OpcodeDisp_LowDisp_HighImme. Data_LowImme.Data_HighREGR/MMODWd61 1 2338888REGW=1W=0000AXAL001CXCL010D

44、XDL011BXBL100SPAH101BPCH110SIDH111DIBH存放器编码表存放器编码表3.4 80863.4 808680888088指令系统指令系统: :指令格式与编码指令格式与编码v普通双操作数指令格式与编码续普通双操作数指令格式与编码续vMOD和和R/M:确定另外一个操作数。:确定另外一个操作数。OpcodeDisp_LowDisp_HighImme. Data_LowImme.Data_HighREGR/MMODWd3.4 80863.4 808680888088指令系统指令系统: :指令格式与编码指令格式与编码v普通双操作数指令格式与编码续普通双操作数指令格式与编码续v

45、位移量部分:位移量部分:8位或位或16位,或者无。位,或者无。v立刻数:立刻数:8位或位或16位,或者无。位,或者无。OpcodeDisp_LowDisp_HighImme. Data_LowImme.Data_HighREGR/MMODWd61 1 23388883.4 80863.4 808680888088指令系统指令系统: :指令格式与编码指令格式与编码v与累加器与累加器AX或或AL相关双操作数的指令相关双操作数的指令vAXAL:存放器直接寻址:存放器直接寻址v另一操作数:存储器直接立刻数另一操作数:存储器直接立刻数v指令代码中省略累加器编码字段,采用特定的操指令代码中省略累加器编码字

46、段,采用特定的操作码以区别于其他双操作数指令。作码以区别于其他双操作数指令。10100011010000Disp_LowDisp_HighW7188Mem AccAcc Mem指令:指令:MOV AX, 1000H 指令代码:指令代码:10100001 00000000 000100003.4 80863.4 808680888088指令系统指令系统: :指令格式与编码指令格式与编码v指令编码举例指令编码举例vMOV AX,1000HBXSIvMOV的操作码的操作码Opcdoe100010vd=1vW=1vREG=000vMOD=10, R/M=000v指令前两个字节指令前两个字节100010

47、11100000008B80HOpcodeDisp_LowDisp_HighImme. Data_LowImme.Data_HighREGR/MMODWd61 1 23388883.4 80863.4 808680888088指令系统指令系统: :指令格式与编码指令格式与编码v其他指令格式其他指令格式v单操作数指令编码格式单操作数指令编码格式v与立刻数相关的指令的特定格式与立刻数相关的指令的特定格式OpcodeDisp_LowDisp_HighOPR/MMODW71 23388单操作数指令单操作数指令3.5 80863.5 808680888088指令系统指令系统: :指令类型指令类型v指令类型指令类型v传送指令:传送指令:MOV,XCHG,LDS,LEAv算术运算指令:算术运算指令:ADD,INC,SUB,CMP等等v逻辑运算指令:逻辑运算指令:AND,OR,NOT,TEST等等v处置器控制指令:处置器控制指令:CLC,STC,CLI,STI,CLD,NOP等

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论