2023年微机原理与接口技术复习笔记.doc
《2023年微机原理与接口技术复习笔记.doc》由会员分享,可在线阅读,更多相关《2023年微机原理与接口技术复习笔记.doc(27页珍藏版)》请在咨信网上搜索。
程序(program):实现特定应用的数据定义和指令序列。其中,数据是计算机自动计算的对象,而指令(instruction)是指挥计算机执行各种基本操作的指令,一条指令相应一种基本操作。 冯·诺依曼结构: 计算机必须具有的5个基本部分:算术逻辑单元、存储器、控制单元、输入设备、输出设备。 算术逻辑单元实现数据解决,而数据解决是计算机最主线的功能。 存储器用以暂存原始数据、中间结果、最终解决结果及程序。 控制单元:实现指令的执行,根据指令控制算术逻辑单元的操作及各部分之间的数据传送。 现代计算机:普遍采用的是以存储器为中心的冯·诺依曼结构。 算术逻辑单元 存储器 控制单元 输入设备 输出设备 计算机5个部分之间的关系,两种信息流: 数据流:以存储器为中心,其他部分之间的数据传送都要通过存储器的暂存中转。输入设备输入的原始数据和程序(计算机中各部分之间传送的信息广义上都是数据)要暂存在存储器;控制单元从存储器读取指令;算术逻辑单元从存储器得到原始数据,解决后的结果再存回存储器;输出设备输出从存储器传送来的最终解决结果。数据流表征了配合数据解决和程序执行所必须的操作—数据传送。 控制流:以控制单元为中心。控制单元从存储器读取指令(数据流),根据指令译码产生发向其他部分的控制信号(控制流),指挥算术逻辑单元的数据解决,协调各部分之间的数据传送(数据流)。控制流表征了计算机自动计算的实现—程序执行。 微机在结构上两个显著特点:一是采用CPU,二是各组成部件之间采用总线连接。 存储器 CPU I/O接口 I/O接口 时钟 输入设备 输出设备 微机结构 时序脉冲的频率就是CPU的工作频率。 时钟周期:时序脉冲的周期。时钟周期是微机的最小定期单位。 总线周期:CPU访问一次总线的时间即为总线周期。由四个时钟周期构成。 指令周期:执行一条指令的时间即为指令周期。指令周期由若干时钟周期够成。 指令周期涉及取指周期和执行周期,执行周期涉及译码、取操作数、数据解决和存操作数等若干基本操作。 微机的组成结构: 1、 总线:是连接各部件的一组公共信号线; 2、 CPU:算术逻辑单元与控制逻辑单元合称为CPU,即中央解决器; 3、 存储器:存储数据和程序; 4、 I/O接口:输入/输出设备与总线之间的缓冲电路。在外设侧以输入/输出设备通信标准信号实现数据互换,在总线侧则与存储器类似,被CPU通过总线标准信号访问。 在微机结构中,CPU与输入/输出设备不相关,双方可以独立发展。 寻址: CPU从存储器取指令时,必须发出指令所在存储器单元的地址,程序计数器就是暂存在这个地址的寄存器。CPU根据指令访问存储器单元或I/O接口中的数据时,也必须发出相应的地址,地址寄存器就是暂存在这个地方。 地址总线从CPU向存储器和I/O接口的译码电路传送地址。 译码电路对地址译码之后,即可定位到相应的存储器单元或I/O端口。 总线的功能: 地址总线:用于CPU寻址存储器和I/O端口,针对采用独立寻址方式和存储器单元数目,定义为8位宽度。(功能是从CPU向存储器和I/O接口的译码电路传送地址。) 数据总线:是各部件之间数据传送的公共通道。 控制总线:用于CPU控制单元控制数据总线上的传送过程。 三类信号线不是独立作用的,协调完毕数据的传送:CPU一方面通过地址总线和M/IO信号线寻址存储器单元或I/O端口,然后通过RD或WR控制线拟定数据传送的方向,最后被选通的寄存器与CPU通过数据总线实现数据传送。 数据传送是要实现的目的,数据总线是传送通道,地址总线定位数据的所在,控制总线控制数据的传送方向,三总线协调作用,共同实现数据传输的目的。 数据传输的一端一定是CPU内部的寄存器,由控制单元在CPU内部直接控制,且同一时刻只能有一个CPU工作。 模型机的指令集:共8条。2条数据解决指令(加法和减法操作),2条存储器访问指令,2条输入/输出访问指令,1条流程控制指令(无条件转移)和1条空操作指令。 伪指令:用于向汇编程序指示存储器分派的汇编命令(directive)。 操作系统:一种控制硬件和调度软件全面管理计算机资源的程序。 执行指令:涉及取指令和译码发出控制信号两个阶段。后一阶段是通过指令译码器和控制逻辑电路对设计的指令集实现译码,并转换成相应的控制信号。 程序计数器(PC):是控制单元中的一个重要寄存器。其内容是控制单元要执行的下一字节指令的地址,控制单元根据这个地址从存储器去的一字节指令后,就对程序计数器加1,始终指示下一字节指令的地址,这样控制单元就可以不断取得指令(取指令后自加1)。 I/O接口的数据传送方式: 1、查询方式(Query):不需增长额外的硬件,CPU输入或输出数据时,必须先查询相应I/O接口是否就绪,若就绪则进行数据传送,否则继续查询直到满足条件。(耗时) 2、中断方式(Interrupt):当相应I/O接口满足数据传送条件时积极向CPU发出申请,由CPU中断当前执行的程序,调用一个相应的子程序完毕数据传送,子程序返回后继续执行被中断的程序。(CPU运营效率高,但I/O接口想CPU申请的信号需要占用CPU引脚,而响应此过程也需要一定的CPU开销,尚有也许增长硬件) 3、DMA方式(Direct Memory Access):DMA方式是通过增长一个硬件(DMA控制器)来专门完毕I/O接口与存储器的直接数据互换。DMA控制器发出地址信号、控制信号,而采用DMA方式时,CPU要出让总线控制权,这时,CPU可以继续执行当前程序,但不能访问总线,还也许影响到对中断的响应。 微解决器:算术逻辑单元和控制逻辑单元,以及暂存数据和指令的寄存器组(Register Set)、高速缓冲存储器(Cache)等特殊寄存器,这些部件集中在一片大规模或超大规模集成电路芯片上。(通常,微解决器不包含程序存储单元) 微机:以微解决器为核心,配以大规模集成电路的只读存储器ROM、读写存储器RAM、输入/输出接口及总线。(微机已具有独立运营的能力) 微机系统:硬件和软件的集合。 8086微解决器 是字长16位的定点微解决器,内部寄存器、算术逻辑单元和外部数据引脚均为16位,支持8位和16位的符号数/无符号数的算术运算和数据传送。提供20位地址引脚(存储周期20位地址有效;I/O周期16位地址有效),可寻址1M存储器空间和64K I/O地址空间。 流水线: 分段寻址:把整个存储器地址分为若干段,存储器单元的定位被分解为所在的段和在段内的偏移,一次,存储器单元的地址由两部分组成:段地址和偏移地址。段地址和偏移地址通常记为segment:offset。段地址定位断的位置,由8086内专门的段寄存器提供。偏移地址定位存储器单元在段内的位置,假如是取指操作,偏移地址由指令指针寄器提供;假如是指令执行中访问存储器操作数,偏移地址在指令中指出。 物理存储器:连接在系统总线上实际存在的存储器。 物理地址:为了寻址物理存储器,微解决器向系统地址总线发出的地址。物理地址是寻址物理存储器的线性地址,线性是指连续而有序的意思。 8086的分段地址称为逻辑地址。要访问系统总线上的物理存储器,逻辑地址必须转换为物理地址,所以逻辑地址只存在于8086中,即逻辑地址对物理存储器是透明的。 总线接口单元BIU 段寄存器: 段寄存器组:CS、SS、DS、ES。 CS(Code Segment):保存代码段的段地址,代码段用于存储程序的指令。 SS(Stack Segment):保存堆栈段的段地址,堆栈段用于形成堆栈区。 DS(Data Segment):保存数据段的段地址,数据段用于暂存原始数据和解决后的中间结果及最终结果。 ES(Extra Segment):保存扩展段的段地址,扩展段与数据段类似,一般情况下,数据段用于存储局部变量,扩展段用于存储全局变量。 地址加法器:将执行单元提供的16位费重定位地址重定位为20位的存储器物理地址,用于存储器接口访问总线上实际存无的物理存储器。 工作分两步:1.将段寄存器提供的16位段地址左移4位,得到20位的段首地址。2.20位段首地址再加上16位的偏移地址,即可得到20位的物理地址。 指令指针寄存器:存储代码段内的偏移地址,,与CS仪器构成取指所需的程序计数器。程序计数器由总线接口单元自动改变,始终指向顺序存储的下一字节指令。除控制程序流指令可以改变程序计数器外,其他指令都不能直接修改程序计数器。 (8086复位后,CS所有置位而IP所有复位,程序计数器的值为FFFFH:0000H,转换为物理地址为FFFF0H) 存储器接口: 指令流字节队列: 执行单元EU 控制器:从指令流字节队列顺序读取指令,根据指令译码控制8086中其他部分进行相应的操作,以实现指令规定的功能。 控制器根据规定修改程序计数器的内容之后,必须等待总线接口单元清空指令流字节队列,并按修改后的程序计数器内容重新取指填充指令流字节队列后,控制器才干继续从指令流字节队列取指令。 算术逻辑单元:这个16位算术逻辑单元,根据控制器的控制,可完毕8位或16位的二进制算术运算和逻辑运算,实现对数据的解决。 标志寄存器:标志寄存器设计为16位,实际使用9位,其中6位用于存放算术逻辑单元运算后的结果特性,称为状态标志; CF(Carry Flag):进位/借位标志。(最高位) PF(Parity Flag):奇偶标志。(置位位的个数,为偶则PF=1,表达为PE;为奇则PD=0,表达为PO) AF(Auxiliary Carry Flag):辅助进位/借位标志,用于BCD加法的调整。(运算的低四位产生了进位或借位,AF=1,表达为AC;否则AF=0,表达为NA) ZF(Zero Flag):零标志。(运算结果为0,则标志置位;否则复位) SF(Sign Flag):符号标志,用于标志符号的正负。(运算结果最高位为1,则标志置位,表达为NG;否则标志复位,表达为PL) OF(Overflow Flag):溢出标志,用于标志符号数的运算结果是否超过表达范围(无符号数的溢出以CF标志)。(双高异或判别) 此外3位通过人为设立,用以控制8086的3种特定操作,称为控制标志。 TF(Trap Flag):陷阱标志,也称为单步标志,用于程序的单步执行调试。 IF(Interrupt Flag):中断标志。(IF=1,表达为EI,即允许响应可屏蔽中断的请求;IF=0,表达为DI,即严禁响应可屏蔽中断的请求) DF(Direction Flag):方向标志。(DF=1,表达为DN,即down,串操作后地址指针自动减量;DF=0,表达为UP,即up,串操作后地址指针自动增量) 通用寄存器组:是8086中暂存数据,指针的寄存器阵列,相比使用存储器,可以减少访问总线的次数,有助于提高数据解决速度。8086包含8个16位寄存器,使用上一般没有限制,但有些特定操作规定必须使用指定的寄存器。 寄存器定义为: AX(Accumulator),累加寄存器;重要用于乘除运算和输入输出操作时存储操作数、优化移动操作。 BX(Base),基寄存器;重要用于存储器间接寻址时存储数据段的基地址。 CX(Counter),计数寄存器;重要用于循环、反复、移位操作时存储计数值。 DX(Data),数据寄存器;重要用于乘除运算时存储操作数、输入输出操作间接寻址时存储I/O地址。 SP(Stack Pointer),堆栈指针寄存器;用于存储站定的偏移地址。 BP(Base Pointer)基指针寄存器;重要用于存储器间接寻址时存储堆栈段的基地址。 SI(Source Index),索引源寄存器;重要用于存储器间接寻址时存储索引地址、串操作时存储原串偏移地址。 DI(Destination Index),目的索引寄存器 ;重要用于存储器间接寻址时存储索引地址、串操作时存储目的串偏移地址。 假如I/O端口中的是字数据时,最佳分派偶地址存储。 计算机中的指令由操作码和操作数两部分构成。操作码也称为指令码,说明计算机要执行哪种操作,是指令中不可缺少的部分;而操作数是参与本指令运算的数据,也就是各种操作的对象。 为限制指令的长度,8086指令系统规定,一条指令的操作数最多只能有2个,且它们不能同时位于存储器中。 根据指令的不同,操作数可以是1个,即单操作数,也可以是两个,即双操作数(源操作数和目的操作数)。有的指令还可以没有操作数或隐含操作数。 基本数据类型:字节、字、双字。 指令中的立即数是字符,则用单引号括起来。 8086CPU的寻址方式(计算机中操作数地址的形成就是寻址方式) 1、 操作数包含在指令中,称为立即操作数。 2、 操作数包含在CPU的某个内部寄存器中,称为寄存器操作数。 3、 约定操作数事先存放在存储器中存放数据的某个单元,称为存储器操作数。 立即数寻址:立即数只能作为源操作数,不能作为目的操作数。 寄存器寻址:是指操作数就在CPU的内部寄存器中,那么寄存器名课在指令中指出。 CS和IP不可直接由指令修改,exp:MOV AX,CS——对的;MOV CS,BX——错误;MOV AX,IP——错误 在一条指令中,可以对源操作数采用寄存器寻址,也可以对目的操作数进行寄存器寻址,还可以两者都用寄存器寻址方式。 采用寄存器寻址方式的指令在执行时,操作就在CPU内部进行,而不需要访问存储器,因而速度不久。 存储器寻址:用存储器寻址的指令,操作数一般位于代码段之外的数据段、堆栈段或附加段的存储器中,指令中给出的是存储器单元的地址或生成存储器单元地址的信息。 物理地址(PA)=(段寄存器)x 16 + 有效地址(EA) 一条指令中,只能有一个存储器操作数,或者源操作数,或者目的操作数。存储器寻址分为直接寻址、寄存器间接寻址、基址寻址、变址寻址、基址加变址寻址。 1、 直接寻址:操作数在存储器中,存储单元的有效地址由指令直接指出。直接寻址,是在指令的操作码后直接给出操作数的16位偏移地址,因而直接寻址是对存储器进行访问时可采用的最简朴的方式。 2、 寄存器间接寻址:PA=16 x(DS)+ EA 3、 寄存器相对寻址: 4、 基址变址寻址: 5、 相对基址变址寻址: I/O端口寻址 8086采用独立编址的I/O端口,用专门的输入输出指令(IN/OUT)对I/O端口进行操作。当端口编号小于255时,可以直接寻址;大于255时,只能用DX作为间接寻址。 1、 直接端口寻址: Exp:IN AL,60H;将60H端口中的数据输入到AL中; IN AX,80H;将80H与81H相邻两端口的16位数据输入到AX中; IN/OUT指令不支持立即数寻址,所以指令中出现的数据是直接寻址的端口地址,不是立即数。 2、 寄存器的间接端口寻址: Exp:MOV DX,333H; 将端口地址送入DX OUT DX,AL; 将AL中的数据输出到DX所指的端口中 MOV DX,330H; 将端口地址送入DX IN AL,DX; 将DX所指的端口中的数据输入到AL中 只能用DX作为I/O指令的间接寻址寄存器,不能用其他寄存器作为I/O指令的间接寻址。 8086 CPU的指令按功能可分为:数据传送、算术运算、逻辑运算和移位、串操作、控制转移和解决器控制指令6种。 数据传送指令: 通用数据传送指令:MOV;格式:MOV dst,src 数据互换指令:XCHG; 格式:XCHG dst,src;1)源操作数与目的操作数不能同时为内存单元;2)不能使用CS、IP作为操作数;3)不影响标志位。 堆栈操作指令:PUSH、POP,在调用子程序时要保存返回地址;在中断解决过程中要保存断点地址;进入子程序和中断解决后还要保存通用寄存器的值;子程序执行完毕和中断解决完毕返回时,又要恢复通用寄存器的值,并分别将返回地址或断点地址恢复到指令指针寄存器中。 1)8086的堆栈操作都是字(16位)操作,不允许字节的堆栈操作,因此PUSH AH是错误的。 2)堆栈指令中的操作数只能是存储器或寄存器操作数,而不能是立即数。 3)堆栈操作指令中,有一个操作数是隐含的,这就是堆栈指针SP只是的栈顶存储单元。 4)入栈时“先减后压”(SP先减2,在压入操作数),出栈时“先弹后加”(弹出操作数后,SP加2)。 5)CS寄存器可以入栈,而出栈指令POP CS却是非法指令。由于8086 CPU指令系统不允许CS寄存器目的操作数。执行POP CS将改变代码段寄存器CS的内容,会导致CPU从一个与程序无关的新段中去取下一条指令,从而使程序错误地运营。 累加器专用传送指令:XLAT、IN、OUT。 XLAT:换码指令,不影响标志位,也称为查表指令。查表结果送入“AL”。 8086系统的I/O指令中有:直接寻址和寄存器间接寻址两种寻址方式,只能用累加器AL/AX与I/O端口进行数据传送。 地址传送指令:LEA、LDS、LES。 LEA:取有效地址指令。将一个任意寻址的存储器操作数的有效地址送给一个16位目的寄存器中,指令的源操作数必须是存储器操作数的地址,目的操作数必须是16位寄存器操作数。该指令常用来设立一个16位寄存器作为地址指针。 LDS:全地址指针传送指令。传送一个32位全地址指针到两个16位目的寄存器,地址指针涉及一个段地址和一个偏移地址。一方面从32位的双字存储单元取得低位字,作为全地址指针的偏移地址复制到一个指定的寄存器中(目的操作数中),再将高位字作为全地址指针的段地址复制到DS中。 LES:全地址指针传送指令。与LDS指令功能类似,只是把DS换ES。操作时一方面从32位的双字存储单元取低位字,作为全地址指针的偏移地址复制到一个指定的寄存器中(目的操作数中),再将高位字作为全地址指针的段地址复制到ES寄存器。 LEA与LDS、LES允许的操作数类型相同,重要区别在于:LEA指令的目的操作数是16位偏移地址,而LDS、LES指令的目的操作数是32位的全地址指针。 标志寄存器传送指令:LAHF、SAHF、PUSHF、POPF。 LAHF(Load AH From Flags):读取标志指令。指令格式:SAHF,该指令的执行不影响标志位。 将寄存器中的低8位传送到AH中,涉及5个状态标志SF、ZF、AF、PF、CF,其相应的位是第7、6、4、2、0,而第5、3、1位没有定义。 SAHF(Store AH into Flags):设立标志指令。指令格式:SAHF,该指令执行时,标志位被新的值所替代。 LAHF与SAHF刚好相反,执行时将AH寄存器的相应位送到标志寄存器的低8位,完毕对5个状态标志位SF、ZF、AF、PF、CF的设立。 PUSHF(PUSH Flags):标志入栈指令。指令格式:PUSHF。 POPF(POP Flags):标志出栈指令。 PUSHF与POPF指令分别起保护标志和恢复标志的作用。 算术运算类指令:无符号数与有符号数采用同一套加减法指令的条件:1、规定参与加减法运算的加数、被减数或减数必须同为无符号数或有符号数;2、要用不同的状态标志位检测无符号数或有符号数的运算结果是否溢出(CF/OF)。 除INC/DEC指令不影响进位标志CF外,其他算术运算指令对OF、SF、ZF、AF、PF、CF均会产生影响。 加法:ADD、ADC、INC。 ADD:不带进位加。格式:ADD dst,src;注意: dst不能为立即数,dst,src不能同为存储器操作数。 ADC:带进位加。格式:ADC dst,src;注意:dst=dst+src+CF。 ADC重要用于多字节运算。 Exp:两个32位操作数1234A9A9H和5678C8C8H依次存在1000H开始的单元,低位在前高位在后,规定编程求和,结果仍然存在1000H开始的连续单元。 1000H A9; MOV SI,1000H 1001H A9; MOV DI,1004H 1002H 34; MOV AX,[SI] 1003H 12; ADD AX,[DI] 1004H C8; MOV [SI],AX 1005H C8; MOV AX,[SI+2] 1006H 78; ADC AX,[DI+2] 1007H 56; MOV [SI+2],AX MOV WORD PTR [SI+4],0 ADC WORD PTR [SI+4],0 减法:SUB、SBB、DEC、NEG、CMP。 DEC:减量指令。注意:段寄存器不能使用该指令。 NEG:取补指令。格式:NEG dst,该指令执行的结果总是使CF=1,除非操作数为0才使CF=0。 注意:当操作数dst=0时,结果不变;当操作数为-128(补码为80H)或-32768(补码为8000H)时,结果数值不变,但使OF置1。 乘法指令:MUL、IMUL。 特点:在指令中总有一个操作数隐含在AL或AX中。指令中的操作数字节,则另一个操作数隐含在AL中,乘积在AX中;指令中的操作数为字,则另一个操作数隐含在AX中,乘积在DX、AX中,其中DX作为存放乘积的高位扩展。 MUL:只对CF、OF有定义。乘积的高半部分不为0,则CF=OF=1;否则CF=OF=0。CF=OF=1表达结果的高半部分包含乘积的有效位,代表乘积的长度扩展;CF=OF=0代表乘积的长度没有扩展。 源操作数不能为立即数。 IMUL:格式与功能上与MUL类似,不同的是,MUL规定两乘数都为带符号数(补码),且乘积也是补码表达的数。 除法指令:DIV、IDIV、CBW、CWD。 特点:无符号数的除法DIV与带符号数的除法IDIV,被除数隐含在累加器AX(字节除)或DX和AX(字除)中。在除法运算中,假如除数是8位的,则规定被除数是16位的;除数是16位的,则规定被除数是32位的。 除法指令对所有状态标志均无定义。 DIV:对于字节除法,所得商存于AL,余数存于AH;对于字除法,商存于AX,余数存于DX。若除数为0,则在内部产生一个类型0的中断。 IDIV:与DIV指令相同,只是操作数是带符号数的补码,商和余数也是补码。其中,商也许为正或负,余数总是与被除数的符号相同,为正或负。除法指令的寻址方式与乘法指令相同,其目的操作数必须存放在AX中,或DX与AX中。注意:源操作数不能为立即数。 CBW(Convert Byte to Word):字节扩展指令。对标志位无影响,功能:把AL中的符号扩展到AH中。AL<80H,则扩展后(AH)=00H;否则扩展后(AH)=0FFH。 CWD(Convert Word to Double Word):字扩展指令。对标志位无影响,功能:将AX中的符号扩展到DX中。AX<8000H,则扩展后(DX)=0000H;否则扩展后(DX)=FFFFH。 BCD码调整指令:AAA、DAA、AAS、DAS、AAM、AAD。 AAA:加法的非压缩BCD码调整指令(ASCII码调整)。仅影响CF和AF。 DAA:加法的压缩BCD码调整指令(十进制加法调整)。仅OF无定义。 AAS:减法的非压缩BCD码调整指令。仅影响CF和AF。 DAS:减法的压缩BCD码调整指令。仅OF无定义。 AAM:乘法的非压缩BCD码调整指令。仅影响PF、SF、ZF。 AAD:除法的非压缩型BCD码调整指令。仅影响PF、SF、ZF。 逻辑运算与移位指令 需要对字节或字数据的各个二进制位进行操作时,可采用二进制位操作类指令。 逻辑运算类指令:AND、OR、NOT、XOR、TEST。 AND:逻辑与。格式:AND dst,src。两个操作数的相应位进行运算,与运算的结果送回到目的操作数。常用于对指定位进行清零。 OR:逻辑或。格式:OR dst,src。两个操作数按位进行或运算,结果送回目的操作数。 常用于对指定位进行置1操作。 XOR:逻辑异或。XOR dst,src。两个操作数按位进行异或运算,结果送回目的操作数。 注意:上述几种运算的目的操作数不能为立即数,两个操作数不能同时为存储器数。 TEST:测试指令。格式:TEST dst,src。将dst指定的内容按位做逻辑与运算,但不送回操作结果,只根据结果影响标志位。TEST指令的操作数寻址与AND指令相同。 常用来检测操作数的某些位是1还是0。 注意:上述指令对标志位的影响:标志位CF、OF复位,SF、PF和ZF由操作结果拟定,AF未定义。 NOT:逻辑非。格式:NOT dst。指定的寄存器或存储单元的内容按位取反。常用来对某个数做求反运算。 非循环移位指令:SHL、SHR、SAL、SAR。 SHL:逻辑左移指令。指令格式:SHL dst,CL;CL是移位的位数。功能:将操作数左移,CL指定移位位数,最高位移入进位标志CF,移动后空出的最低位补0。 注意:操作数dst可以位寄存器数或存储器数。 当只移1位时,若符号位SF发生变化,则OF=1;否则OF=0。 Exp:MOV BL,01110101 MOV CL,4 SHL BL,CL 运算结果:(BL)=01010000,SF=0,CF=1,OF=1,ZF=0。 SHR:逻辑右移指令。指令格式与SHL类相同。功能:将操作数右移,CL指定移位位数,最高位补0,最低位移入CF。SHR指令的操作数寻址方式也与SHL相同。 当只移1位时,若移位后的符号位SF发生变化,则OF=1;否则OF=0。 以上两种操作:标志位SF、ZF、PF根据移位结果置位。 SAL:算数左移指令。与SHL指令功能相同,最高位移入标志位CF,但SAL将操作数视为带符号数。移动后空出的低位补0。 SAR:算术右移指令。与SHR指令功能相同,最低位移入标志位CF,但符号位保持不变。 循环移位指令:ROL、ROR、RCL、RCR。 ROL(Rotate Left):循环左移指令。最高位进入标志位CF并移入最低位,按一个闭环回路进行移位。目的操作数可以是寄存器数或存储器数。格式:ROR dst,CL;CL是移位的位数。 Exp:ROL AL,1 MOV CL,4 ROL AL,CL 循环移位为1位时,若移位后的操作数的最高位不等于标志位CF,则溢出标志OF=1;否则OF=0.用来表达移位前后操作数的符号位是否发生改变(OF=0表达符号位为改变)。 ROR(Rotate Right)循环右移指令,与ROL指令的功能相似,仅移动方向相反,最低位进入标志位CF并移入最高位。 只移1位时,移位后的操作数的最高位与次高位不相等,则溢出标志OF=1;否则OF=0。可由此判断移位前后操作数的符号位是否发生改变。 RCL:带进位的循环左移指令。最高位移入标志位CF,CF移入最低位形成环路。 循环移位为1位时,若移位后的操作数的最高位与标志位CF不相等,则溢出标志OF=1;否则OF=0。可由此判断移位前后操作数的符号位是否发生改变。 RCR:带进位的循环右移指令。最低位移入标志位CF,CF移入最高位。形成环路。 循环移位为1位时,若移位后的操作数的最高位与次高位不相等,则溢出标志CF=1;否则OF=0。可由此判断移位前后操作数的符号位是否发生改变。 串操作指令:是用一条指令实现对一串字符或数据的操作。串是存储器中一系列连续的字或字节,串操作就是针对这些字或字节进行的某种相同的操作。 8086串操作特点: 1) 所有串操作指令都用SI对DS段中的源操作数进行间接寻址,用DI对ES段中的目的操作数进行间接寻址,即目的串和源串地址分别有ES:DI和DS:SI提供。使用前应先设定好SI和DI的初值。 2) 串操作指令执行时自动修改地址指针,地址指针的修改与方向标志DF有关。 3) 若源串和目的串在同一段中,则把数据段基址DS和附加段基址ES设成相同的数字,即DS=ES,仍由SI和DI分别指出源串和目的串的有效地址。 4) 任何一条串操作指令,可在前面加一个“反复前缀”,通过它们来控制串操作指令的反复执行。 5) 串操作指令是唯一的一组源操作数和目的操作数都在存储单元的指令。 反复前缀:REP、REPZ(REPE)、REPNZ(REPNE)。 功能是反复执行紧跟其后的串操作指令,不能单独使用,只能加在串操作指令前用来控制串操作的反复执行,且不影响标志位。 REP:反复前缀(无条件反复)。执行操作时,(CX)=0,退出反复串操作;否则反复串操作。过程如下: 1、 若(CX)=0,退出反复操作REP,否则往下执行; 2、 修改CX,即CX=CX-1; 3、 执行串操作一次,并修改SI、DI,执行第1步。 其中,DF=0,则SI、DI内容自动加1或加2;否则自动减1或2. 用途:用于字串传送MOVS或保存字串STOS指令的的前缀。 REPZ(REPE):相等反复前缀。若执行的操作为(CX)~=0且ZF=1,反复串操作;否则,退出反复操作。 用途:用于比较两个字符串,找出不同的字。REPZ(REPE)与串操作指令CMPS与SCAS配合。表达只有当两数相等时才继续比较;否则可提前结束串操作。 REPNZ(REPNE):不相等反复前缀。执行的操作为(CX)~=0且ZF=1,反复串操作;否则不反复。 用途:在一个字串中,找到需要的字。也可用于比较两个字串,找出相同的字。REPNZ(REPNE)和串操作指令CMPS与SCAS配合。表达只有当两书不相等时才继续比较;否则可提前结束串操作。 串传送指令格式:MOVSB/MOVSW;用于字节/字的传送。 操作:((ES:DI))<—((DS:SI));不影响标志位。 该指令把数据段一SI为有效地址的源串中的字节或字传送到附加段以DI为有效地址的目的串中,同时自动修改SI和DI中的有效地址,使之指向下一个元素。 串比较指令格式:CMPSB/CMPSW;源字节串比较或字串比较。 ((ES:EI))<—((DS:SI));6个标志位:AF、ZF、OF、PF、CF、SF反映了目的串与源串的关系。 CMPS指令把由SI指定的数据段中源串的一个字节或字与DI指定的附加段目的串的一个字节或字相减,但不回送结果,只是影响标志位。比较后按照DF的值修改地址指针SI和DI。 SCAS:串扫描指令。格式:SCASB/SCASW;字节串或字串扫描。 操作:把AL/AX的内容减去DI指定的目的串中的一个字节或字数据。不送运算结果,只根据结果影响标志位,并按照DF的值修改DI。用于从一个字串中查找一个与AL或AX中不同的字符,或查找一个相同的字符。 LODS:读取串指令。格式:LODSB/LODSW。 操作:把源串中的一个字节或字的数据送入AL或AX中,同时按照DF标志修改SI。该指令正常情况是不反复操作的,由于每反复一次操作,累加器的内容就会改写,但在软件设计中,该指令是十分有用的。 STOS:存串指令。格式:STOSB/STOSW。 操作:把AL或AX中的一个字节或字的内容送入目的串所在单元,并按照DF的值修改DI。STOS指令常用于初始化某一缓冲区为同一数据。 控制转移类指令:无条件转移指令、条件转移指令、循环控制指令、中断指令。 JMP:无条件转移指令。可实现短、近、远转移,使用方便,涉及段内直接转移、段内间接转移、段间直接转移、段间间接转移。 CALL/RET:调用和返回指令。子程序完毕功能之后,最后执行的一条指令必须是返回指令RET,返回地址由执行CALL调用指令时入栈保存的断点值提供。 条件转移指令:满足条件,则转移到指定的目的地址;否则,继续执行该条件转移指令的下一条指令。条件转移分为:单个状态条件转移、无符号条件转移、带符号条件转移3种。 指令格式:JX Target;X代表转移条件,条件成立,则转到标号Target处执行;否则顺序执行;Target是短目的地址。 LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ:短目的标号。 第四章: 表达式:由若干操作数和运算符构成的故意义的组合序列。表达式可出现于源程序的任何地方,在汇编过程中可产生拟定的值。表达式是常数、寄存器、标号、变量与运算符的组合。 汇编时按优先规则对表达式进行计算,计算出具体数值,在运营时不能改变,而寄存器间接寻址的地址计算则是按照执行指令时寄存器的值先取指后计算的。 运算符:算术运算符、逻辑运算符、关系运算符、分析运算符、合成运算符。 算术运算符:+、-、*、/、取模运算(MOD)。 Exp: MOV AL, 5 MOD 2 ;汇编后为MOV AL,1 ‘/’是取商部分,只有整数部分,没有余数;而MOD只是取余数。 逻辑运算符:AND、OR、XOR、NOT。逻辑运算符在两个操作数之间按位进行布尔运算,逻辑表达式只能对常数进行运算,所得结果也是常数。 关系运算符:在两个无符号操作数之间进行大小关系比较,满足关系则返回全1,否则返回全0。涉及:相等(EQ)、不相等(NE)、小于(LT)、大于(GT)、小于等于(LE)、大于等于(GE)。运算结果是一个逻辑值,即真或假。 1)关系运算符只能对常数(或相称于常数)进行运算,且为无符号数。 2)关系为真,结果为全1;否则为全0。 分析运算符:SEG、OFFSET、TYPE、LENGTH、SIZE。 SEG:取变量或标号的段地址。 OFFSET:取变量或标号偏移地址。 TYPE:取变量的类型,对于变量类型返回值可以是1(字节)、2(字)、4(双字)、6(三字)、8(四字)、10(五字);对于标号类型,返回值可以是-1(NEAR)或-2(FAR)。 LENGTH:取变量中元素的个数。若使用DUP( )定义的数组变量,结果为单元的个数;否则结果为1。 SIZE:取所定义存储区的字节数(等于LENGTH*TYPE)。若使用DUP(),取所定义的变量或字节个数;没使用DUP( ),则取第1个数据的字节数。 合成运算符:对已定义的但个操作数重新生成段基地址、偏移量相同而类型不同的新操作数,重要介绍PTR、THIS。 1) PTR:用来指定地址操作数的类型。 格式为:<新类型> PTR <存储器操作数> 类型:BYTE、WORD、DWORD、NEAR、FAR。 功能:指定原存储器的操作数为新类型,新操作数的段基地址和偏移量与原操作数相同;PTR也可用来进行强制类型转换。 THIS:指定“新类型”。格式为:THIS <新类型>;代表新的操作数的类型即为式中指定的“新类型”。 伪指令:符号定义伪指令、数据定义伪指令。 符号定义伪指令:EQU、=。 格式:<符号> EQU <表达式>。用EQU定义的符号未清除前不能进行重定义。清除EQU定义可用:PURGE伪指令。格式:PURGE <符号>。 用“=”定义的符号可在任何时候进行重定义,其他用法与EQU完全相同。两者均不占用存储空间,仅是给符号赋值在编译过程中完毕。 数据定义伪指令:<变量名> 数据定义伪指令 <操作数,操作数,···> 操作数可以是常数、变量或表达式。 常用的数据定义伪指令有:DB定义字节、DW定义字、DD定义双字、DQ定义4字、DT定义5字。 Exp:DATA DB ‘HELLO’ 复制操作符:DUP 定义反复的数据可使用复制操作符,括号中的内容可认为DUP反复定义的嵌套。 Exp:DATA- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 微机 原理 接口 技术 复习 笔记
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文