




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章 指 令 系 统,指令系统,CPU的主要工作是执行指令,指令是指挥计算机执行某些操作的命令,一台计算机所有指令的集合构成该计算机的指令系统。,一、机器指令的格式,一条指令就是机器语言的一个语句,由一组二进制代码来表示。一条指令由两部分构成:,操作码:指明指令的操作性质及功能。 地址码:指明操作数的地址。 一条指令必须有一个操作码,可能包含几个地址码。,1、操作码,指令系统中的每一条指令都有一个唯一确定的操作码,反应不同的操作功能。 指令操作码的编码可以分为定长编码和变长编码。,(1)定长编码,这是一种最简单的编码方式,操作码的位数和位置固定,指令长度不固定。 操作码不同涉及的操作数的个数
2、不同,所以指令的长度随操作码而变化。 例如,IBM370机就是采用这种定长操作码格式。 IBM 370机(字长32位)的指令可分为三种不同的长度,不论指令的长度有多少位,其中的操作码字段一律都是8位。,IBM 370机的指令格式,(2)变长编码,这是一种操作码长度不固定,而指令长度固定的设计方法。 PDP-11机(字长16位)的指令分为单字长、两字长、三字长三种,操作码字段占416位不等,可遍及整个指令长度。 显然,操作码字段位数的不固定将增加指令译码的难度,使控制器的设计复杂化。但是,它有效地利用每个二进制位。,PDP-11机的指令格式,(3) 扩展操作码技术,操作码的位数随地址数的减少而增
3、加,4 位操作码,8 位操作码,12 位操作码,16 位操作码,15条三地址指令,15条二地址指令,15条一地址指令,16条零地址指令,7.1,2. 地址码,(1) 四地址,(2) 三地址,8 6 6 6 6,A1 第一操作数地址,A2 第二操作数地址,A3 结果的地址,A4 下一条指令地址,若 PC 代替 A4,8 8 8 8,4 次访存,4 次访存,寻址范围 26 = 64,寻址范围 28 = 256,若 A3 用 A1 或 A2 代替,7.1,(3) 二地址,8 12 12,或,4 次访存,若ACC 代替 A1(或A2),若结果存于 ACC,(4) 一地址,(5) 零地址,8 24,无地
4、址码,2 次访存,寻址范围 212 = 4 K,寻址范围 224 = 16 M,3次访存,7.1,二、指令字长,指令字长决定于,操作码的长度,指令字长 = 存储字长,2. 指令字长 可变,操作数地址的长度,操作数地址的个数,1. 指令字长 固定,按字节的倍数变化,7.1,小结,当用一些硬件资源代替指令字中的地址码字段后,当指令的地址字段为寄存器时,可扩大指令的寻址范围,可缩短指令字长,可减少访存次数,三地址 OP R1, R2, R3,二地址 OP R1, R2,一地址 OP R1,指令执行阶段不访存,可缩短指令字长,7.1,7.2 操作数类型和操作种类,一、操作数类型,无符号整数,定点数、浮
5、点数、十进制数,ASCII,逻辑运算,二、数据在存储器中的存放方式,字地址 为 低字节 地址,字地址 为 高字节 地址,存储器中的数据存放(存储字长为 32 位),7.2,三、操作类型,1. 数据传送,寄存器,寄存器,寄存器,寄存器,存储器,存储器,存储器,存储器,置“1”,清“0”,2. 算术逻辑操作,加、减、乘、除、增 1、减 1、求补、浮点运算、十进制运算,与、或、非、异或、位操作、位测试、位清除、位求反,如 8086,MOVE,STORE,LOAD,MOVE,PUSH,POP,例如,MOVE,MOVE,7.2,ADD SUB MUL DIV INC DEC CMP NEG AAA AA
6、S AAM AAD AND OR NOT XOR TEST,3. 移位操作,算术移位,4. 转移,(1) 无条件转移 JMP,(2) 条件转移,结果为零转 (Z = 1) JZ,结果溢出转 (O = 1)JO,结果有进位转(C = 1)JC,跳过一条指令 SKP,循环移位(带进位和不带进位),如,逻辑移位,完成触发器,7.2,SAL,SAR SHL ,SHR,RCL,RCR ROL ,ROR,8086cpu的标志寄存器,标志寄存器,FLAGS为标志寄存器,又称PSW(Program Status Word),即程序状态寄存器。这是一个存放条件码标志、控制标志和系统标志的寄存器。, 条件码标志
7、包括以下6位: OF(Over Flow Flag) 溢出标志。(示例) 将参加算术运算的数看作带符号数,如运算结果超出补码表示数的范围N,即溢出时,则OF置1;否则OF置0。对于字节运算有128N+127;对于字运算有32768N+32767。 SF(Sign Flag) 符号标志。(示例) 把指令执行结果看作带符号数,如结果为负,则SF置1;结果为正,则SF置0。 ZF(Zero Flag) 零标志。(示例) 如指令执行结果各位全为0时,则ZF置1;否则ZF置0。,8086 CPU中标志寄存器的内容:,CF(Carry Flag) 进位标志。 (示例) (与OF的区别) 在进行算术运算时,
8、如最高位(对字操作是第15位,对字节操作是第7位)产生进位或借位时,则CF置1;否则置0。在移位类指令中,CF用来存放移出的代码(0或1)。 AF(Auxiliary Carry Flag)辅助进位标志 (与CF的区别) 在进行算术运算时,如低字节中低4位(第3位)产生进位或借位时,则AF置1;否则AF置0。AF可用于十进制运算的校正。 PF(Parity Flag) 奇偶标志。 (示例) 用来为机器中传送信息时可能产生的代码出错情况提供检验条件。当运算结果中1的个数为偶数时置1,否则置0。,示例指令1: mov al,98 add al,99 执行后将产生溢出。因为add al,99 进行的
9、有符号数运算是:(al)=(al)+99=98+99=197 而结果197超出了机器所能表示的8位有符号数的范围:-128127。 示例指令2: mov al,0F0H ;0F0H,为有符号数-16的补码 add al,88H ;88H,为有符号数-120的补码 执行后将产生溢出。 因为add al,88H进行的有符号数运算是: (al)=(al)+(-120)=(-16)+(-120)=-136 而结果-136超出了机器所能表示的8位有符号数的范围:-128127。,OF示例,计算机中通常用补码来表示有符号数据。所以计算机中的一个数据可以看作是有符号数,也可以看成是无符号数 指令示例 mov
10、 al,10000001B add al,1 结果: (al)=10000010B 将add指令进行的运算当作无符号数的运算,那么add指令相当于计算129+1,结果为130(10000010B);虽然运算影响了SF的值,但是SF的值则没有意义。,SF示例,将add指令进行的运算当作有符号数的运算,那么add指令相当于计算-127+1,结果为-126(10000010B)。这是结果为负数,则SF=1,所以通过SF来得知结果的正负。 总之,SF 标志就是CPU对有符号数运算结果的一种记录 ,它记录数据的正负。,指令示例: mov ax,1 sub ax,1 指令执行后,结果为0,则ZF =1。
11、mov ax,2 sub ax,1 指令执行后,结果为1,则ZF = 0。,ZF示例,比如,两个8 位数据:98H+98H,将产生进位。 mov al,98H add al,al ;执行后: (al)=30H,CF=1, add al,al ;执行后:(al)=60H,CF=0, ;CF记录了最高有效位向更高位的进位值 比如,两个 8 位数据:97H-98H,将产生借位,借位后,相当于计算197H-98H。 mov al,98H sub al,al ;执行后: (al)=FFH,CF=1, sub al,al ;执行后: (al)=00H,CF=0, ;CF记录了最高有效位向更高位的借位值,C
12、F示例,示例 指令:mov al,1 add al,10 执行后,结果为00001011B,其中有3(奇数)个1,则PF=0; 指令:mov al,1 or al,10 执行后,结果为00000011B,其中有2(偶数)个1,则PF=1;,PF示例,CF是对无符号数运算有意义的标志位; OF是对有符号数运算有意义的标志位。 比如: mov al,98 add al,99 add指令执行后:CF=0,OF=1。 总的来说, 对于无符号数运算,CPU用CF位来记录是否产生了进位; 对于有符号数运算,CPU 用 OF 位来记录是否产生了溢出,还要用SF位来记录结果的符号。 它们之间没有任何关系。,O
13、F与CF的区别,OF与CF的区别,区别: 8位运算或16位运算时如果有进位或借位CF等于1。 AF也一样是进位或借位的标志,只不过它是4位运算时的进位或借位的标志。 示例:两个8位寄存器,AL=1000 0001,BL=1000 0011; add AL BL ;结果CF=1,AF=0 因为AL和BL的低四位相加没有进位 AF是为了在BCD码运算时,要用到的,因为BCD码是以4位表示的。, 控制标志位1位 DF(Direction Flag)方向标志,用来在串处理指令中控制处理信息的方向。 当DF位为1时,每次操作后使变址寄存器SI和DI减小,这样就使串处理从高地址向低地址方向处理。当DF位为
14、0时,则使SI和DI增大,使串处理从低地址向高地址方向处理。 系统标志位: TF(Trap Flag) 陷阱标志,用于调试时的单步方式操作。 IF(Interrupt Flag) 中断标志 。,在调试程序DEBUG中提供了测试标志位的手段,用符号表示某些标志位的值:,(3) 调用和返回,CALL SUB1,CALL SUB2,CALL SUB2,RETURN,RETURN,7.2,IN AX, n,OUT DX, AL,OUT n, AX,OUT DX, AX,(4) 陷阱(Trap)与陷阱指令,意外事故的中断,设置供用户使用的陷阱指令,如 8086 INT TYPE 软中断,提供给用户使用的
15、陷阱指令,完成系统调用,5. 输入输出,IN AL, DX,IN AX, DX,7.2,如,如,IN AL, n,OUT n, AL,7.3 寻 址 方 式,寻址方式,确定 本条指令 的 操作数地址 下一条 欲执行 指令 的 指令地址,寻址方式,7.3 寻 址 方 式,一、指令寻址,顺序,跳跃,由转移指令指出,二、数据寻址,形式地址,指令字中的地址,有效地址,操作数的真实地址,约定,指令字长 = 存储字长 = 机器字长,1. 立即寻址,指令执行阶段不访存,A 的位数限制了立即数的范围,可正可负 补码,形式地址 A 就是操作数,7.3,2. 直接寻址,EA = A,寻址特征,A,ACC,执行阶段
16、访问一次存储器,A 的位数决定了该指令操作数的寻址范围,操作数的地址不易修改(必须修改A),有效地址由形式地址直接给出,7.3,3. 隐含寻址,操作数地址隐含在操作码中,寻址特征,A,ACC,暂存,另一个操作数 隐含在 ACC 中,如 8086,MUL 指令,被乘数隐含在 AX(16位)或 AL(8位)中,MOVS 指令,源操作数的地址隐含在 SI 中,目的操作数的地址隐含在 DI 中,指令字中少了一个地址字段,可缩短指令字长,7.3,4. 间接寻址,EA =(A),有效地址由形式地址间接提供,寻址特征,A,EA,A1,EA,执行指令阶段 2 次访存,可扩大寻址范围,便于编制程序,寻址特征,A
17、,一次间址,多次间址,操作数,操作数,多次访存,7.3, ,转 子程序,转 子程序,间接寻址编程举例,(A) = 81,(A) = 202, 间址特征,7.3,JMP A,5. 寄存器寻址,EA = Ri,执行阶段不访存,只访问寄存器,执行速度快,寻址特征,寄存器个数有限,可缩短指令字长,有效地址即为寄存器编号,7.3,EA = ( Ri ),6. 寄存器间接寻址,有效地址在寄存器中, 操作数在存储器中,执行阶段访存,寻址特征,便于编制循环程序,有效地址在寄存器中,7.3,7. 基址寻址,(1) 采用专用寄存器作基址寄存器,EA = ( BR ) + A,BR 为基址寄存器,寻址特征,可扩大寻
18、址范围,便于程序搬家,BR 内容由操作系统或管理程序确定,在程序的执行过程中 BR 内容不变,形式地址 A 可变,7.3,(2) 采用通用寄存器作基址寄存器,寻址特征,R0 作基址寄存器,由用户指定哪个通用寄存器作为基址寄存器,基址寄存器的内容由操作系统确定,在程序的执行过程中 R0 内容不变,形式地址 A 可变,7.3,8. 变址寻址,EA = ( IX ) +A,寻址特征,可扩大寻址范围,便于处理数组问题,IX 的内容由用户给定,IX 为变址寄存器(专用),在程序的执行过程中 IX 内容可变,形式地址 A 不变,通用寄存器也可以作为变址寄存器,7.3,例,设数据块首地址为 D,求 N 个数
19、的平均值,直接寻址,变址寻址,LDA D,ADD D + 1,ADD D + 2,ADD D + ( N -1 ),DIV # N,STA ANS,LDA # 0,LDX # 0,INX,CPX # N,BNE M,DIV # N,STA ANS,共 N + 2 条指令,共 8 条指令,X 为变址寄存器,D 为形式地址,(X) 和 #N 比较,结果不为零则转,7.3,9. 相对寻址,EA = ( PC ) + A,A 是相对于当前指令的位移量(可正可负,补码),A 的位数决定操作数的寻址范围,程序浮动,广泛用于转移指令,操作数,寻址特征,相对距离 A,7.3,(1) 相对寻址举例,M 随程序所
20、在存储空间的位置不同而不同,EA = ( M+3 ) 3 = M,7.3,(2) 按字节寻址的相对寻址举例,JMP * + 8,设 当前指令地址 PC = 2000H,转移后的目的地址为 2008H,因为 取出 JMP * + 8 后 PC = 2002H,二字节指令,故 JMP * + 8 指令 的第二字节为 2008H - 2002H = 6H,7.3,10. 堆栈寻址,(1) 堆栈的特点,堆栈,多个寄存器,指定的存储空间,先进后出(一个入出口),栈顶地址 由 SP 指出, 1,1FFFH,+1,2000 H,1FFF H,2000 H,7.3,(2) 堆栈寻址举例,PUSH A 前,PUSH A 后,POP A 前,POP A 后,7.3,(3) SP 的修改与主存编址方法有关, 按 字 编址,进栈,出栈, 按 字节 编址,存储字长 16 位,进栈,出栈,存储字长 32 位,进栈,出栈,7.3,7.4 指令格式举例,一、设计指令格式时应考虑的各种因素,1. 指令系统的 兼容性,(向上兼容),2. 其他因素,操作类型,数据类型,指令格式,包
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业培训课件制作app
- 车辆运输与道路通行证代理合同
- 生态农业园场地承包与绿色产品开发合同
- 科技园区场地租赁印花税缴纳合同
- 餐饮企业厨房承包与绿色环保食材采购协议
- 餐饮企业员工社会保险与福利待遇合同
- 饲料设备建设方案模板
- 应急配送设计方案
- 房屋买卖合同及附属设施移交及使用及维护服务协议
- 美院雕塑考试题及答案
- 广东省江门市普通高中2025届物理高一下期末综合测试试题含解析
- 九师联盟2024-2025学年高二下学期7月期末质量检测政治试题(含答案)
- 人教版八年级物理上册《1.1长度和时间的测量》同步练习题及答案
- 安全生产执法培训课件
- 绝缘漆项目可行性研究报告立项报告模板
- 焊工证复审考试题及答案
- 喘息性支气管肺炎的护理查房
- 新型电极材料成本控制-洞察及研究
- 2025年高考英语试卷(全国Ⅰ卷)(空白卷)
- 工程测量考试试题及答案
- 粤菜餐厅运营方案
评论
0/150
提交评论