




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机组成与结构ComputerOrganizationandArchitecture计算机组成与结构ComputerOrganizationandArchitecture2目录目录5.1 5.1 处理器的外特性处理器的外特性5.2 5.2 指令的时序指令的时序5.3 5.3 控制器设计控制器设计计算机组成与结构ComputerOrganizationandArchitecture35.1 5.1 处理器的外特性处理器的外特性指令系统指令系统5.1.1 5.1.1 机器语言与汇编语言机器语言与汇编语言 1.1.指令系统与汇编语言指令系统与汇编语言 (1)(1)指令系统是指令系统是CPUCPU外
2、特性的表述外特性的表述 CPUCPU是表现为用户可使用的一些指令是表现为用户可使用的一些指令, ,用户看到的用户看到的CPUCPU就是就是指令系统指令系统. .是一个人机界面是一个人机界面. . (2)(2)机器语言机器语言: :是与机器结构关系密切是与机器结构关系密切, ,由指令系统表述的由指令系统表述的语言语言. . 机器语言是机器语言是0,10,1码语言码语言, ,即用即用0,10,1码描述的语言码描述的语言, ,缺点上难读缺点上难读, ,难记难记, ,难查错难查错, ,不利推广不利推广. . (3)(3)系列系列CPUCPU芯片芯片: :指基本体系结构相同的指基本体系结构相同的CPUC
3、PU芯片芯片. .它们的它们的基本指令集是相同的基本指令集是相同的. .指令系统是向上兼容的指令系统是向上兼容的, ,低档低档CPUCPU上上运行的软件可在高档运行的软件可在高档CPUCPU上运行上运行. .如如Intel 80X86Intel 80X86系列系列CPUCPU芯芯片片. .计算机组成与结构ComputerOrganizationandArchitecture42.2.符号语言与汇编语言符号语言与汇编语言 机器语言机器语言: :即即0,10,1语言语言. (mnenonic). (mnenonic) 符号语言符号语言: :用助记符号代替用用助记符号代替用0,10,1码描述的机器指
4、令系统码描述的机器指令系统. . 汇编语言汇编语言: :是一种符号语言是一种符号语言, ,用助记符形式描述指令用助记符形式描述指令. . 指令语句指令语句: :在汇编语言程序中在汇编语言程序中, ,每条指令被称为一条指令语每条指令被称为一条指令语句句. . 指示语句指示语句: :也叫伪指令也叫伪指令, ,它不产生实质性运算操作它不产生实质性运算操作, ,只向汇编只向汇编器发始器发始, ,停等命令或内存安排等工作停等命令或内存安排等工作. . 指令的语法详见节指令的语法详见节. .计算机组成与结构ComputerOrganizationandArchitecture5指令的语法指令的语法 指令是
5、程序人员和计算机交往的最基本的界面指令是程序人员和计算机交往的最基本的界面, ,是人们指是人们指示计算机示计算机( (能被计算机识别能被计算机识别) )执行各种基本操作的命令执行各种基本操作的命令. . 1.1.指令的语法指令的语法: : (1)(1)含义含义: :规定了指令的表示格式规定了指令的表示格式, ,或是构成指令的规则或是构成指令的规则. . (2)(2)典型指令的组成典型指令的组成: : 必备必备 可有可无可有可无, ,可多可少可多可少 OP CODE + nOP CODE + n个地址个地址 操作码操作码 地址域地址域 OPOP码的位数码的位数 操作类型操作类型( (指令条数指令
6、条数),2),27 7=128=128条条 操作数地址的位数操作数地址的位数 能访问的最大存储空间能访问的最大存储空间 (AD1)OP(AD2) (AD1)OP(AD2) AD3AD3 源源1 1 源源2 2 目标目标 注注: :下条指令地址在转移类指令中出现下条指令地址在转移类指令中出现, , 正常情况由正常情况由PCPC确定确定. .OPcode+地址码OPAD1 AD2 . ADnOPAD1 AD2 AD3计算机组成与结构ComputerOrganizationandArchitecture62.2.符号语言与汇编语符号语言与汇编语(Assemble) 以以8086为例为例,介绍汇编语言
7、中的几个概念介绍汇编语言中的几个概念. (1)数据类型数据类型: 数值数据数值数据:8086:8086汇编语言允许使用以下数值数据汇编语言允许使用以下数值数据 二进制数据二进制数据:后缀后缀B. 如如10101110B 十进制数据十进制数据:后缀后缀D,如如235D. 八进制数据八进制数据:后缀后缀Q,如如235Q. 十六进制数据十六进制数据:后缀后缀H,如如ABC2H. 字符串变量字符串变量:ASCII,例例A. (2)(2)运算符运算符: : 算术运算符算术运算符:+, , , . 逻辑运算逻辑运算符符:AND(与与),OR(或或),NOT(非非) 关系运算符关系运算符:EQ,NE,LT,
8、GT,LE,GE. (3)(3)操作码操作码:ADD,SUB,MUL,DIV:ADD,SUB,MUL,DIV等等. . (4)(4)地址码地址码: :可用十六进制可用十六进制, ,十进制十进制, ,寄存器名或存储器地寄存器名或存储器地址名表示址名表示. . 例例:MOV AX,2000H, MOV AX,BX:MOV AX,2000H, MOV AX,BX (5)(5)标号和注释标号和注释: :标号标号: :作为转移指令的目标标记作为转移指令的目标标记 注释注释: :向阅读程序的人提供说明向阅读程序的人提供说明. .计算机组成与结构ComputerOrganizationandArchitec
9、ture7(6)(6)汇编语言指令的一般形式汇编语言指令的一般形式 例例:A1:MOV AX,5 ;:A1:MOV AX,5 ;把常数把常数5 5传送到寄存器传送到寄存器AXAX中中. . 用用80868086汇编语言描述的计算汇编语言描述的计算A=2+3A=2+3的程序的程序 ORG 0C0H; 0C0H作为程序起始地址作为程序起始地址. START:MOV AX,2; 2 AX,AXAX,AX是累加器是累加器,START,START是标是标号号 ADD AX,3 ; 3+(AX) AX HLT ;暂停暂停 END START; 结束汇编结束汇编标号名操作码操作数;注释,计算机组成与结构Co
10、mputerOrganizationandArchitecture8(7)(7)汇编程序汇编程序 汇编汇编: :源程序源程序 目标程序目标程序( (机器语言程序机器语言程序) ) 汇编过程汇编过程: : 编辑阶段编辑阶段:源程序源程序 汇编阶段汇编阶段:目标文件目标文件XXX.OBJ;操作码变为机器码操作码变为机器码,但地址浮动但地址浮动,不能执行不能执行 运行阶段运行阶段:可执行文件可执行文件XXX.EXE; LINK后后,由目标文件变成可执行文件由目标文件变成可执行文件汇编程序翻译连接汇编执行源程序.ASM目标程序.OBJ可执行程序.EXE运行结果汇编程序MASM连接程序LINKDOS环境
11、下汇编语言程序的汇编过程计算机组成与结构ComputerOrganizationandArchitecture95.1.2 5.1.2 寻址方式寻址方式(Addressing Mode)(Addressing Mode) 寻址方式寻址方式: :是寻找操作数在主存中存放的真实地址是寻找操作数在主存中存放的真实地址. . 1.1.概念概念:(1):(1)形式地址形式地址(formal address):(formal address):是指令中给出的是指令中给出的操作数地址操作数地址, ,往往不是操作数的真实存储器地址往往不是操作数的真实存储器地址. . (2)(2)有效地址有效地址(EA-eff
12、ective address):(EA-effective address):是操作数的真实存是操作数的真实存储器地址储器地址. . (3)(3)寻址寻址: :形式地址形式地址 有效地址有效地址 (4)(4)指令中操作数的指令中操作数的4 4个来源个来源( (或或4 4种寻址方式种寻址方式) ) 立即寻址立即寻址: :操作数在指令中操作数在指令中, ,立等可取立等可取. . 例例:MOV AX, 5 ADD AX, 1234H 寄存器寻址寄存器寻址: :操作数在操作数在CPUCPU某寄存器某寄存器( (通用或段寄存器中通用或段寄存器中),),例例ADD AX, BXADD AX, BX 存储器
13、寻址存储器寻址: :操作数在内存某单元中操作数在内存某单元中, ,例例MOVMOV AX,2000HAX,2000H I/OI/O寻址寻址: :操作数通过操作数通过I/OI/O端口获得端口获得, ,有二种方法有二种方法寻址寻址方式地址码指令地址码部分计算机组成与结构ComputerOrganizationandArchitecture105.1.2 5.1.2 寻址方式寻址方式(Addressing Mode)(Addressing Mode) A.A.独立的独立的I/OI/O地址地址:I/O:I/O端口地址是专用的端口地址是专用的, ,例例OUT 50H,ALOUT 50H,AL或或IN A
14、L,50HIN AL,50H等等.Intel80X86.Intel80X86系列用此方法系列用此方法. . B.B.与内存地址统一编址与内存地址统一编址:I/O:I/O地址与内存地址一样看待地址与内存地址一样看待. . 2.2.常用寻址方式常用寻址方式: : 介绍之前介绍之前, ,先了解一下先了解一下8086CPU8086CPU的内部结构图的内部结构图. . (1)(1)通用寄存器通用寄存器: :视其用途分成二类视其用途分成二类 AX(AH/AL):Accumulator,AX(AH/AL):Accumulator,作累加器用作累加器用. . BX(BH/BL):Base,BX(BH/BL):
15、Base,基址寄存器基址寄存器, ,在涉及基地址寻址方式中在涉及基地址寻址方式中, ,用作基址寄存器用作基址寄存器. . CX(CH/CL):Counter.CX(CH/CL):Counter.在循环指令和串操作指令中在循环指令和串操作指令中, ,用作隐用作隐含的计数器含的计数器. . , , 运算时专用运算时专用,DX,DX指定用于存放指定用于存放I/OI/O端口地址端口地址. .计算机组成与结构ComputerOrganizationandArchitecture115.1.2 5.1.2 寻址方式寻址方式(Addressing Mode)(Addressing Mode) 指针寄存器及变
16、址寄存器指针寄存器及变址寄存器:4 4个个1616位寄存器位寄存器, ,不能分成字节不能分成字节 SP(Stack Pointer):堆栈指针寄存器堆栈指针寄存器,用于指示栈顶的偏移地址用于指示栈顶的偏移地址. BP(Base Pointer):基址指针寄存器基址指针寄存器,SS和和BP连用连用,可作为堆栈区中的可作为堆栈区中的1个基地址个基地址,以相对方式访问堆栈中的存储单元以相对方式访问堆栈中的存储单元. SI(Sourse Index):源变址寄存器源变址寄存器,SI与与DS连用连用,确定确定DS段中某一存段中某一存储单元地址储单元地址,SI有自动增量有自动增量(DF=0)和自动减量和自
17、动减量(DF=1)的变址功能的变址功能,在在串处理指令中串处理指令中,SI作为隐含的源变址寄存器作为隐含的源变址寄存器. DI(Destination Index):目的变址寄存器目的变址寄存器,DI与与DS,ES连用连用,确定确定DS,ES段中某一存储单元地址段中某一存储单元地址,SI有自动增量有自动增量(DF=0)和自动减量和自动减量(DF=1)的变址功能的变址功能,在串处理指令中在串处理指令中,SI作为隐含的目标变址寄存器作为隐含的目标变址寄存器. (2)段寄存器段寄存器:PC机把存储器划分为若干段机把存储器划分为若干段,汇编程序把要运行的程序汇编程序把要运行的程序,数据数据,堆栈分别放
18、在不同的存储器段堆栈分别放在不同的存储器段(segment) 中中,每个存储单元由每个存储单元由2个个因素决定因素决定: 段基址段基址:是该存储单元所有段的段首地址是该存储单元所有段的段首地址. 段内偏移地址段内偏移地址:该单元与所在段基址间以字节数计算的距离该单元与所在段基址间以字节数计算的距离.计算机组成与结构ComputerOrganizationandArchitecture125.1.2 5.1.2 寻址方式寻址方式(Addressing Mode)(Addressing Mode) CSCS代码段寄存器代码段寄存器: :只能存放程序段的首址只能存放程序段的首址. . DSDS数据段
19、寄存器数据段寄存器: :只能存放数据段的首址只能存放数据段的首址. . ESES附加数据段寄存器附加数据段寄存器: :只能存放数据段的首址只能存放数据段的首址. . SSSS堆栈段寄存器堆栈段寄存器: :只能存放堆栈段的首址只能存放堆栈段的首址. . 注意注意: :主存分成多少存储段是任意的主存分成多少存储段是任意的, ,但把由但把由CS,DS,ES,SSCS,DS,ES,SS指明的段称当前段指明的段称当前段. .在程序运行的任何时刻在程序运行的任何时刻, ,主存最多只能主存最多只能有有4个当前段个当前段. 15 0 IP (3)(3)控制寄存器控制寄存器:2个个,即指令指针即指令指针IP和标
20、志寄存器和标志寄存器FR. IP(指令指针指令指针):用于指示程序运行至何处用于指示程序运行至何处,IP不能用指令去取出或对不能用指令去取出或对它赋值它赋值,但可通过执行转移指令把转移地址的段内偏移地址装入但可通过执行转移指令把转移地址的段内偏移地址装入IP. FR(标志寄存器标志寄存器):体现了体现了CPU的当前状态和某些控制位的当前状态和某些控制位,其中其中: 6位是状态标志位位是状态标志位:CF,PF,AF,ZF,SF,DF.反映算术反映算术,逻辑指令执行后逻辑指令执行后的某些状态特征的某些状态特征. 3位是控制标志位位是控制标志位:TF,IF,DF,体现体现CPU的控制的控制.O D
21、I T S ZAPC计算机组成与结构ComputerOrganizationandArchitecture135.1.2 5.1.2 寻址方式寻址方式(Addressing Mode)(Addressing Mode) 1.1.立即寻址立即寻址(immediate addressing):(immediate addressing): (1)(1)特点特点: :操作数直接在指令代码中给出操作数直接在指令代码中给出, ,是指令代码的一是指令代码的一部分立即可取部分立即可取. .不必访问内存不必访问内存, ,速度快速度快. . (2)(2)举例举例: :ADD AX,3165H ; AX+3165
22、H AX 见图见图5.1. 2.2.寄存器直接寻址寄存器直接寻址(register direct addressing): 即操作数包含在即操作数包含在CPUCPU的寄存器中的寄存器中. .按寄存器代号对它读写按寄存器代号对它读写. . (1)(1)寄存器组的作用寄存器组的作用: :保存运算中间结果和某些最终结果保存运算中间结果和某些最终结果. .避免多次访避免多次访问慢速的内存问慢速的内存. (2). (2)特点特点: :指令字长短指令字长短, ,指令执行速度快指令执行速度快. . (3)(3)举例举例:MOV AX,BX; BX AX 5 5 3.3.存储器直接寻址存储器直接寻址: (me
23、mory direct : (memory direct addressing):addressing): (1)(1)特点特点: :操作数的有效地址操作数的有效地址(EA)(EA)直接包含在指令中直接包含在指令中. . 即把操作数的地址直接作为指令中的地址码即把操作数的地址直接作为指令中的地址码. . (2)(2)举例举例:MOV AX,3056H;:MOV AX,3056H;见图见图5.3,5.3,即即3056H=A3CEH AX3056H=A3CEH AX (3)(3)缺点缺点: :不灵活不灵活, ,受指令长度限制受指令长度限制, ,寻址范围有限寻址范围有限. .BXAX计算机组成与结构
24、ComputerOrganizationandArchitecture145.1.2 5.1.2 寻址方式寻址方式(Addressing Mode)(Addressing Mode) 4.4.存储器间接寻址存储器间接寻址(in(indirect direct addressing): addressing): (1)(1)特点特点: :由地址码中从存储器中取出的不是操作数由地址码中从存储器中取出的不是操作数, ,而是而是操作数的地址操作数的地址, ,再以该地址访问一次内存取出的数才是操再以该地址访问一次内存取出的数才是操作数作数. .即要访问两次内存即要访问两次内存. . 存放操作数地址的寄存
25、器存放操作数地址的寄存器(8086中用中用)或主存单元叫间址器或地址指针或主存单元叫间址器或地址指针. (2)(2)举例举例:,:,以图为例以图为例, ,其寻址过程为其寻址过程为: : 0B58H=1A3CH(是地址是地址) 1A3CH=2B5DH AX (2B5DH) (3)(3)间址器间址器( (地址指针地址指针):):犹如一个犹如一个“地址寻问处地址寻问处”, ,只要改只要改变它的内容变它的内容, ,不改变指令就能访问到不同的操作数不改变指令就能访问到不同的操作数. .全部字全部字长都可用于存放操作数地址长都可用于存放操作数地址, ,能扩大寻址范围能扩大寻址范围. .但要多次访但要多次访
26、存存, ,降低指令执行速度降低指令执行速度. .为解决速度问题为解决速度问题, ,常用寄存器作间常用寄存器作间址器址器.8086.8086中的间接寻址是寄存器间接寻址中的间接寻址是寄存器间接寻址, ,规定用规定用 BX,BP,SI,DIBX,BP,SI,DI作地址指针作地址指针. .计算机组成与结构ComputerOrganizationandArchitecture155.1.2 5.1.2 寻址方式寻址方式(Addressing Mode)(Addressing Mode) (4) (4)寄存器间接寻址寄存器间接寻址:此时的间址器用寄存器此时的间址器用寄存器.在在8086中中,规定用规定用
27、BX,BP,SI,DI作地址指针作地址指针,则操作数的物理地址为则操作数的物理地址为: (BX) PA=16*(DS)+ (S I) 或或 16*(SS)+(BP), (DI) 5.5.变址变址(index)/ (index)/ 基址寻址基址寻址: : (1)(1)变址寻址的设计思想变址寻址的设计思想: :因指令中地址码位数有限因指令中地址码位数有限,为扩大访存为扩大访存容量容量,设置一变址器设置一变址器,用变址器内容用变址器内容(偏移量偏移量)与指令中的地址码与指令中的地址码(基准基准量量)相加相加,形成操作数有效地址形成操作数有效地址EA.操作数操作数EA的位数取决于相加的位数取决于相加2
28、个数个数中的位数最长的数中的位数最长的数.一般用寄存器作为变址器一般用寄存器作为变址器,速度快速度快. 8086中中,用用2个变址寄存器个变址寄存器,其中其中SI为源变址寄存器为源变址寄存器,DI为目的变址寄为目的变址寄存器存器.如如MOV CL,SI-100H. (2)(2)基址寻址的设计思想基址寻址的设计思想: :在多用户计算机中在多用户计算机中, ,为每一用户分配一为每一用户分配一存储空间存储空间, ,每用户按各自的逻辑地址编程每用户按各自的逻辑地址编程. .当程序装入机器运行时当程序装入机器运行时, ,为为每一用户指定一基地址每一用户指定一基地址, ,用户程序的实际存放地址为基地址与其
29、逻辑用户程序的实际存放地址为基地址与其逻辑地址之和地址之和, ,不同的用户使用不同的基地址不同的用户使用不同的基地址, ,占用不同的存储空间占用不同的存储空间. .如MOV AX,SI,即SI中存的是操作数的地址,而不是操作数.方括号是间址方式的一种表示.计算机组成与结构ComputerOrganizationandArchitecture165.1.2 5.1.2 寻址方式寻址方式(Addressing Mode)(Addressing Mode) 基址寻址基址寻址: :与变址寻址相反与变址寻址相反, ,基址寄存器提供基准值基址寄存器提供基准值, ,由指由指令提供偏移量令提供偏移量.8086
30、.8086中中, ,用用BXBX或或BPBP作为作为2 2个基址指针个基址指针. . 如如MOV AL,BX+10H;BXMOV AL,BX+10H;BX是基址指针是基址指针,10H,10H为偏移地址为偏移地址. 两者的异同两者的异同: : A.A.都能扩充寻址范围都能扩充寻址范围. . B.B.变址寻址主要用于处理数组变址寻址主要用于处理数组, , 一般把数组的首址放在一般把数组的首址放在变址寄存器中变址寄存器中, ,不断改变变址寄存器的内容不断改变变址寄存器的内容, ,很易形成数很易形成数组中任一数据的地址组中任一数据的地址, ,适合编循环程序适合编循环程序. . C.C.基址寻址基址寻址
31、: :支持多用户程序编程支持多用户程序编程, ,只需把某道程序的装只需把某道程序的装入地址放在基址寄存器中入地址放在基址寄存器中, ,程序员在编程时用的逻辑地址程序员在编程时用的逻辑地址将通过基址寻址向物理地址转换将通过基址寻址向物理地址转换. . 基址和变址寻址方式基址和变址寻址方式: :是基址和变址寻址方式的结合是基址和变址寻址方式的结合. .如如80868086指令指令MOV AX,BX+SI+3BH.MOV AX,BX+SI+3BH.计算机组成与结构ComputerOrganizationandArchitecture17变址寻址的举例变址寻址的举例 例例:求求1,2,3,.,10的平
32、均值的平均值 1.用直接寻址用直接寻址: 2.用变用变址寻址址寻址 MOV AL,0 MOV AL,0 MOV AL,2000 MOV SI,0 ADD AL,2001 MOV CX,000A ADD AL,2002 A1:ADD AL,SI+2000 ADD AL,2003 INC SI ADD AL,2004 LOOP A1 ADD AL,2005 MOV BL,0A ADD AL,2006 DIV BL ADD AL,2007 INT 3 ADD AL,2008 ADD AL,2009 MOV BL,0A DIV BL INT 3结论:用变址寻址,可使程序简洁,当被求值的个数变大时,此优
33、点愈加明显.注:1,2,3,.,10分别放在内存20002009单元中.计算机组成与结构ComputerOrganizationandArchitecture186.6.堆栈堆栈(stack)(stack)寻址寻址 (1)堆栈堆栈:可由一片内存区域或可由一片内存区域或CPU寄存器组成寄存器组成. (2)三要素三要素:堆底堆底(固定固定),栈顶栈顶(活动端活动端),栈顶指针栈顶指针(指示当前栈顶位置指示当前栈顶位置). (3)存储机理存储机理:后进先出后进先出(LIFO) (4)操作操作:压压(进进)栈栈, 弹弹(出出)栈栈 (5)用途用途:用于子程序调用用于子程序调用,递归调用等的断点保护和现
34、场保护递归调用等的断点保护和现场保护. (6)举例举例: 3100:SUBR1 SUBR2 3010: . 3111: . 3011:CALL SUBR1 3112: CALL SUBR2 3012: . 3113: . RET RET 3012301231133012SPSPSPSPSP堆栈初始化 CALL SUBR1 CALL SUBR2SUBR2中的RETSUBR1中的RET首次压栈压栈计算机组成与结构ComputerOrganizationandArchitecture196.6.堆栈堆栈(stack)(stack)寻址寻址 (6)8086(6)8086的堆栈的堆栈 A.A.位置位置:
35、 :当前堆栈段设在当前堆栈段设在SSSS段内段内, ,始址由始址由SSSS指示指示, ,栈顶指针栈顶指针由由SPSP担任担任. .可用指令可用指令MOV SP,imMOV SP,im对堆栈初始化对堆栈初始化. . B.B.最大空间最大空间:64KB:64KB C.C.进进/ /出栈操作出栈操作: : 进栈指令进栈指令:PUSH :PUSH 源操作数源操作数 操作操作: :先减指针先减指针SP-2 SP,SP-2 SP,后压数后压数 字字 (SP-1,SP-2)(SP-1,SP-2) 弹栈指令弹栈指令:POP :POP 目的操作数目的操作数 操作操作: :先弹数先弹数 (SP,SP+1) (SP
36、,SP+1) 目的地址目的地址 后加指针后加指针 SP+2 SPSP+2 SP D.D.举例举例:push ds ;暂存暂存 push cs ;暂存暂存CS pop ds ;传传CS DS, 使使CS=DS push si+06h; 存储单元内容进栈存储单元内容进栈计算机组成与结构ComputerOrganizationandArchitecture20的段寻址的段寻址 段寻址实质上是基址寻址段寻址实质上是基址寻址, ,一般用于微机中一般用于微机中, ,例例8086.8086. (1)(1)分段技术分段技术: :内存地址位数内存地址位数2020位位,2,22020=1M, =1M, 而地址寄存
37、器只而地址寄存器只有有1616位位,2,21616=64K.=64K.采用分段技术可解决此矛盾采用分段技术可解决此矛盾. . (2)设置设置4 4个段寄存器个段寄存器:CS,DS,SS,ES(:CS,DS,SS,ES(均为均为1616位位),),它们只保存它们只保存各段的首地址各段的首地址( (必须能被必须能被1616整除整除),),即段基址即段基址. . 再给出基于某段首地址的偏移量再给出基于某段首地址的偏移量, ,即某存储单元与它所在即某存储单元与它所在段的段基址之间的相对字节数段的段基址之间的相对字节数. . 寻址某存储单元寻址某存储单元: : (BP,SP,S I,DI) 由段基址由段
38、基址+某些寄存器提供的某些寄存器提供的16位偏移量位偏移量 20位位的物理地址的物理地址 (2)(2)物理地址的形成过程物理地址的形成过程: : 16*段基址段基址+段内偏移地址段内偏移地址(16位位) (20位位) 20位物理地址位物理地址16位段基址 16位段内偏移地址20位物理地址015150019+左移4位计算机组成与结构ComputerOrganizationandArchitecture215.1.3 CPU5.1.3 CPU中的可编程寄存器中的可编程寄存器 寄存器是计算机系统中最高级别的存储器寄存器是计算机系统中最高级别的存储器,速度与速度与CPU匹配匹配. 可编程寄存器可编程寄
39、存器:应用程序可访问应用程序可访问 系统级寄存器系统级寄存器:特权指令能访问特权指令能访问 调试调试/测试寄存器测试寄存器:特权指令能访问特权指令能访问 80X8680X86及奔腾处理器提供的可编程寄存器分及奔腾处理器提供的可编程寄存器分4 4类类: : 1.1.数据寄存器数据寄存器: :共共4 4个个, ,用来存放计算过程中用到的操作数用来存放计算过程中用到的操作数. . 可作为可作为:4:4个个3232位寄存器位寄存器(EAX,EBX,ECX,EDX)(EAX,EBX,ECX,EDX) 4 4个个1616位寄存器位寄存器(AX,BX,CX,DX)(AX,BX,CX,DX) 8 8个个8 8
40、位寄存器位寄存器(AH,AL.BH,BL,CH,CL,DH,DL)(AH,AL.BH,BL,CH,CL,DH,DL) EAX(AX,AH,AL):EAX(AX,AH,AL):作为累加器用作为累加器用, ,是乘是乘、除及某些调整指令使除及某些调整指令使用用. .在在8038680386以上的处理器中以上的处理器中, ,也可用于保存地址也可用于保存地址, ,作间址器作间址器. . EBX(BX,BH,BL):EBX(BX,BH,BL):作为寻址作为寻址/ /基址寄存器用基址寄存器用. . ECX(CX,CH,CL):ECX(CX,CH,CL):作为计数器用作为计数器用. . EDX(DX,DH,D
41、L):EDX(DX,DH,DL):作为通用数据寄存器用作为通用数据寄存器用. .按使用权限分计算机组成与结构ComputerOrganizationandArchitecture222.2.指针及地址寄存器指针及地址寄存器 ESP,EBP,ESI,EDIESP,EBP,ESI,EDI可用于存放可用于存放16/3216/32位数据位数据, ,但更常用于存放但更常用于存放指针指针操作数地址。操作数地址。 (1)ESP(SP)(1)ESP(SP)用于存放堆栈指针用于存放堆栈指针, ,也叫堆栈指针寄存器也叫堆栈指针寄存器. . (2)EBP(BP)(2)EBP(BP)存放堆栈段中的基地址存放堆栈段中的
42、基地址, ,访问堆栈段的其它信息访问堆栈段的其它信息 (3)ESI(SI)(3)ESI(SI)用于寻址串指令的源数据串用于寻址串指令的源数据串, ,称源变址寄存器称源变址寄存器. . (4)EDI(DI)(4)EDI(DI)用于寻址串指令的目标数据串用于寻址串指令的目标数据串, ,称目标变址寄存称目标变址寄存器器. . 其中其中,ESI,ESI、EDIEDI也可用作通用数据寄存器。也可用作通用数据寄存器。计算机组成与结构ComputerOrganizationandArchitecture233.3.段寄存器段寄存器4.4.控制寄存器控制寄存器 8086/802868086/80286有有CS
43、,DS,ESCS,DS,ES和和SSSS四个段寄存器四个段寄存器,80386,80386以后增加以后增加了了FSFS和和GS.GS. (1)CS:(1)CS:代码段寄存器代码段寄存器, ,存放代码段的始址存放代码段的始址. . (2)DS:(2)DS:数据段寄存器数据段寄存器, ,存放数据段的始址存放数据段的始址. . (3)SS:(3)SS:堆栈段寄存器堆栈段寄存器, ,存放堆栈中的相对地址存放堆栈中的相对地址. . (4)ES,FS,GS:(4)ES,FS,GS:附加数据段寄存器附加数据段寄存器, ,为某些串指令存放目标为某些串指令存放目标数据而外加的数据段数据而外加的数据段. . 控制寄
44、存器控制寄存器: : (1)EIP:(1)EIP:指令指针寄存器指令指针寄存器. . (2)EFLAGS:(2)EFLAGS:状态和标志寄存器状态和标志寄存器, ,用其每一位指示处理器的用其每一位指示处理器的一种工作状态一种工作状态, ,常用以下标志位常用以下标志位: : CF:CF:进位标志进位标志, ,记录最高有效位产生的进位或借位记录最高有效位产生的进位或借位. . PF:PF:奇偶标志奇偶标志, ,用于奇偶校验用于奇偶校验. .计算机组成与结构ComputerOrganizationandArchitecture244.4.控制寄存器控制寄存器 AF:AF:辅助进位标志辅助进位标志,
45、,记录运算时半字节间的进位记录运算时半字节间的进位. . ZF:ZF:零标志零标志, ,运算结果为运算结果为0 0时时, ,置置1;1;否则为否则为0.0. SF:SF:符号标志符号标志, ,运算结果为负时运算结果为负时,SF=1;,SF=1;否则为否则为0.0. TF:TF:陷阱标志陷阱标志, ,为为1 1时时, ,则在执行指令时产生单步中断则在执行指令时产生单步中断. . IF:IF:允许中断标志允许中断标志, ,置置1,1,允许中断允许中断. . DF:DF:方向标志方向标志, ,为为0 0时时,SI,SI和和DIDI的地址递增的地址递增; ;否则递减否则递减. . OF:OF:溢出标志
46、溢出标志, ,为为1 1时时, ,表示超过机器表示数的范围表示超过机器表示数的范围. . IOPL:IOPL:特权标志特权标志. . NT:NT:任务嵌套标志任务嵌套标志. . RF:RF:调试时设置恢复标志调试时设置恢复标志. . VM:VM:虚拟方式标志虚拟方式标志. . VIF:VIF:虚拟方式下中断标志虚拟方式下中断标志. . VIP:VIP:多任务环境下多任务环境下, ,给操作系统提供虚拟中断标志和中给操作系统提供虚拟中断标志和中 ID:ID:指示奔腾支持指示奔腾支持CPUIDCPUID指令指令, ,为系统提供版本为系统提供版本, ,制造厂等制造厂等信息信息断暂挂信息计算机组成与结构
47、ComputerOrganizationandArchitecture25IPFLAGSDSCSESSSFSGSAH AX ALBH BX BLCH CX CLDH DX DLSPBPDISIEIPEFLAGSEAXEBXECXEDXESPEBPEDIESI32位8位寄存器32位寄存器名16位16位指令指针寄存器标志寄存器代码段寄存器数据段寄存器附加数据段寄存器堆栈数据段寄存器附加数据段寄存器附加数据段寄存器累加器基址寄存器计数器数据寄存器栈顶指针基址指针目标变址寄存器源变址寄存器1.控制寄存器2.段寄存器3.数据寄存器4.指针及地址寄存器图5.8 80X86及奔腾处理器提供的可编程寄存器集计
48、算机组成与结构ComputerOrganizationandArchitecture265.1.4 Intel 80865.1.4 Intel 8086指令简介指令简介 本节要点本节要点: :是本章之重点是本章之重点, ,要了解要了解: : (1)(1)每条指令的功能和用法每条指令的功能和用法, ,并并 (2)(2)多上机去逐条体会多上机去逐条体会. . 1.1.数据传送指令数据传送指令: :用于寄存器用于寄存器, ,存储单元或输入存储单元或输入/ /输出端口输出端口间的数据或地址的传送间的数据或地址的传送. . R M, R I/O, R R, 立即数立即数 R/M , 不能不能M M (1
49、)(1)通用数据传送指令通用数据传送指令: : MOVMOV指令指令: :最基本的最基本的数据传送指令数据传送指令 MOV AL,BL ;R R, 8位位 MOV SI,BP+8AH; R M,16位位 MOV AL,6 ; R 立即数立即数, 8位位 XCHGXCHG指令指令: :可可M R, R R ; 不能不能M M,M M,段寄存器段寄存器 段寄存器段寄存器, ,立即数立即数 R/M R/MCS,DS,ES,SS存储器通用寄存器AX,BXCX,DXBP,SPSI,DI立即数计算机组成与结构ComputerOrganizationandArchitecture275.1.4 Intel
50、80865.1.4 Intel 8086指令简介指令简介 (2)(2)输入输入/ /输出指令输出指令: : AX/AL I/O 端口端口 IN AL, 0B5H ;字节输入字节输入 OUT 0FAH, AX ;字输出字输出 MOV DX, 0358H;设置端口地址设置端口地址 IN AX, DX; 字输入字输入 (3)(3)地址传送指令地址传送指令: : 功能功能: :传送操作数的地址传送操作数的地址. . 注意注意: :操作数必须是存储器操作数操作数必须是存储器操作数, ,是送它的地址是送它的地址. . LEA(Load Effective Address) 功能功能: :把源操作数的把源操
51、作数的EAEA送寄存器送寄存器, ,即即LEA REG,SRC 说明说明: :源操作数源操作数SRCSRC必须是内存操作数必须是内存操作数 目的操作数必须是目的操作数必须是1616位的通用寄存器位的通用寄存器. .直接寻址间接寻址EAAL/AXportOUTIN外界计算机组成与结构ComputerOrganizationandArchitecture28(3)(3)地址传送指令地址传送指令 举例举例:LEA BX,XYZ ; XYZ DB 222H (222H)=1916H:LEA BX,XYZ ; XYZ DB 222H (222H)=1916H 执行后执行后, BX=222H, BX=22
52、2H LEA BX,XYZ = MOV BX,OFFSET XYZ LDS 功能功能: :地址指针送某数据寄存器和地址指针送某数据寄存器和DS.DS.寄存器常特指为寄存器常特指为SISI 格式格式:LDS REG,SRC:LDS REG,SRC ;源操作数是双字长的存储器操作数,32位 操作操作:(REG) (SRC)低字低字, (DS) (SRC+2)高字高字 举例举例:LDS SI,BX MOV SI,BX,MOV AX,BX+2,MOV DS,AX LES :LES :与与LDSLDS不同点在于用不同点在于用ESES代代DSDS 功能功能: :地址指针送某数据寄存器和地址指针送某数据寄存
53、器和ES.ES.寄存器常特指为寄存器常特指为DIDI 格式格式:LES REG,SRC ;源操作数是双字长的存储器操作数,32位 操作操作:(REG) (SRC)低字低字, (ES) (SRC+2)高字高字计算机组成与结构ComputerOrganizationandArchitecture292.2.算术运算指令算术运算指令 (4)(4)标志传送指令标志传送指令: :专用于标志寄存器专用于标志寄存器FLFL的操作的操作. . LAHF(Load AH from Flags)-标志寄存器低标志寄存器低8位送位送AH SAHF(Store AH into Flags)-AH内容送标志寄存器内容送
54、标志寄存器 PUSHF(PUSH the Flags)-标志寄存器内容进栈标志寄存器内容进栈 POPF(POP the Flags)-栈顶内容送标志寄存器栈顶内容送标志寄存器 2.2.算术运算指令算术运算指令 二进制数二进制数 无符号十进制数无符号十进制数共同点1.隐含操作数2.无操作数指令APCZSAH.7 0处理对象压缩码(组合):每字节放二个BCD码非压缩码(非组合):每字节一个BCD码例:LAHF; 标志的低8位送AHOR AH,01000000B; 将ZF=1SAHF; ZF=1,其余标志位不变计算机组成与结构ComputerOrganizationandArchitecture30
55、2.2.算术运算指令算术运算指令 1)1)加法指令加法指令 (1)ADD(1)ADD加法指令加法指令 语法语法:ADD DST,SRC:ADD DST,SRC 功能功能:(DST) (SRC)+(DST); 操作数可为操作数可为R,MR,M或立即或立即数数. . 举例举例:ADD AX,BX; ADD AL,40H; ADD BX+SI+64H,AX:ADD AX,BX; ADD AL,40H; ADD BX+SI+64H,AX 注意注意:1.参与运算的两操作数应同时带或不带符号参与运算的两操作数应同时带或不带符号.长度应一致长度应一致. 2.两操作数不能同为存储器数两操作数不能同为存储器数,
56、 立即数不能为目标操作数立即数不能为目标操作数. (2)(2)带进位加法带进位加法ADC:ADC: 语法语法:ADC DST,SRC :ADC DST,SRC 功能功能:(DST) (SRC)+(DST)+CF:(DST) (SRC)+(DST)+CF (3)(3)增量指令增量指令INC: INC: 每次加每次加1 1后回送后回送. . 语法语法:INC SRC; SRC:INC SRC; SRC可为可为R R或或M M 注意注意: :操作数不能为立即数操作数不能为立即数. . 举例举例:IDC CX:IDC CX 用途用途: :常用于修改地址指针常用于修改地址指针. .计算机组成与结构Com
57、puterOrganizationandArchitecture312.2.算术运算指令算术运算指令 (4)AAA(unpacked BCD adjust for addition)-加法的十进制调加法的十进制调整指令整指令 格式格式:AAA ;:AAA ;无操作数无操作数 操作操作: :不做加法不做加法, ,仅把仅把ALAL中的和调整为非组合的中的和调整为非组合的BCDBCD格式格式 举例举例: :ADD AL,BL ; AL=07H, BL=06H AAA ; AX=0103 13 DAA (Decimal adjust for addition) 组合的组合的BCDBCD码的十进制调整加
58、法指令码的十进制调整加法指令 格式格式:DAA ;:DAA ;无操作数无操作数 操作操作: :不做加法不做加法, ,仅把仅把ALAL中的和调整为组合的中的和调整为组合的BCDBCD格式格式 举例举例:ADD AL,BL; AL=26H,BL=55H DAA ; AL=81 +00000110 1101 + 110加6调整 0001001113 +01010101 01111011(7BH)+ 0110加6调整 10000001 81加6调整是对大于9的数,加上6使之 A B C D E F 0 1 2 3 4 5计算机组成与结构ComputerOrganizationandArchitectu
59、re322.2.算术运算指令算术运算指令 2)2)减法指令减法指令: SUB ,SBB, DEC,NEG,CMP: SUB ,SBB, DEC,NEG,CMP (1)SUB DST,SRC ; DST(1)SUB DST,SRC ; DSTSRC DST;SRC DST;例例SUB AX,1200H (2)SBB DST,SRC ; DST(2)SBB DST,SRC ; DSTSRCSRCCF DSTCF DST (3)DEC(3)DEC ;每次减每次减1 1 (4)NEG(4)NEG ;求补求补, ,即即0 0操作数操作数 (5)CMP DST,SRC(5)CMP DST,SRC ;只做只
60、做DSTDSTSRC,SRC,不送结果不送结果, ,两操作数保持两操作数保持原值原值, ,只改变标志位只改变标志位. . 3)3)乘法指令乘法指令:MUL,IMUL(Integer Multiplication):MUL,IMUL(Integer Multiplication) MUL SRC(B) ; AX=AL*SRC ; IMUL是带符号数的乘是带符号数的乘法法 MUL SRC(W); DX.AX=AX*SRCAL乘数AH ALAX乘数DX AX8位8位16位16位16位32位计算机组成与结构ComputerOrganizationandArchitecture332.2.算术运算指令算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海南省东方市2025年上半年公开招聘村务工作者试题含答案分析
- 2025版汽车租赁公司驾驶员合同续签与安全驾驶承诺合同正本
- 2025年抵押贷款装修项目质量保证合同范本
- 2025版水暖安装与老旧管网改造合同范本
- 贵州省贞丰县2025年上半年事业单位公开遴选试题含答案分析
- 2025版线下实体店团购业务合作协议
- 2025版万达商业广场购物中心商户信用评价管理服务合同范本
- 2025版汽修行业培训基地厂房租赁服务协议
- 2025年度商场场地租赁与物业管理合同
- 2025年度绿色建筑项目营销推广服务合同
- 太阳能热水工程验收报告
- 2025年四川省成都市高新区中考一诊英语试题(原卷版+解析版)
- 班级卫生打扫课件
- 校家社协同育人专题家长培训
- 2025至2030年中国聚氨酯传送带数据监测研究报告
- 电梯扣款通知函
- 《恩施旅游,介绍》课件
- 《无铅压电陶瓷综述》课件
- UL891标准中文版-2019配电盘十二版
- 2024年司法考试完整真题及答案
- 乡村振兴大讲堂课程设计
评论
0/150
提交评论