2022年CPU指令系统 .pdf
《2022年CPU指令系统 .pdf》由会员分享,可在线阅读,更多相关《2022年CPU指令系统 .pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 8086CPU指令系统本章重点:1寻址方式 : 立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,基址寻址,变址寻址,基址加变址寻址,串寻址,端口寻址,隐含寻址。28086指令系统:数据传送指令,算术运算指令,移位指令,程序控制指令,串操作指令,处理器控制指令,I/O 指令,中断指令。学习目标:1掌握寻址方式;2掌握常用指令的功能和用法。难点:区别指令的正确与错误。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - 1寻址方
2、式指令在存储器中是顺序存放的, 而操作数的存放没有规律, 因此操作数的寻址方法相对比较复杂。一、 指令的基本格式1组成:一条指令包括操作码和操作数两部分。操作数:源操作数,目标操作数。2寻址方式:寻找指令中操作数的方法。3操作数类型:(8086系统)寄存器操作数, 存储器操作数, 立即数(在指令代码中) 和 I/O 端口操作数。二、 寻址方式1立即数寻址方式:指令中所需的操作数直接包含在指令代码中(即由指令直接提供),立即数可以是 8 位,也可以是 16 位。例:MOV AL ,80H ;将十六进制数80H 送入 AL MOV AX ,1090H;将 1090H送 AX :90HAL ,10H
3、AH 说明:采用立即数寻址方式的指令主要用来对寄存器赋值。因为操作数可以从指令中直接取得, 不需要运行总线周期, 所以,其显著特点就是速度快。规定:立即数只能是整数,不能是小数,变量或者其他类型的数据;另外,立即数只能作为源操作数。2寄存器寻址方式:如果操作数就在CPU 的内部寄存器中,那么寄存器名可在指令中指出,这种寻址方式就叫寄存器寻址。对 16 位操作数来说,寄存器可以为AX ,BX,CX,DX,SI,DI,SP 或BP,而对 8 位操作数来说寄存器可以为AH,DH,AL ,DL。例: INC CX ;将 CX 内容加 1 名师资料总结 - - -精品资料欢迎下载 - - - - - -
4、 - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - ROL AH, 1 ;将 AH 中的内容循环左移1 位。说明:不需要使用总线周期,因此,执行速度快。一条指令中,可以对源操作数采用寄存器寻址方式,也可对目的操作数采用寄存器寻址方式,或两者都用。以下各种寻址方式,操作数都在存储器中。3直接寻址。方式:数据总是在存储器中,存储单元的有效地址由指令直接指出。例: MOV AX,1070H;将 DS 段的偏移量 1070H、1071H 的内容装入AX。即,若 DS=2000H,则将 21070H 和
5、 21071H两单元的内容取出送AX 。说明:直接寻址是对存储器进行访问时可采用的最简单的方式,且可用符号地址代替数值地址。若要对其它段寄存器所指出的存储区进行直接寻址,则必须指出段寄存器名。例:MOV BX ,CS:3000H;设 CS=5100H,则取 54000H和 54001H两单元内容送 BX。4寄存器间接寻址方式:将操作数所在的存储单元的偏移地址放在指令给出的寄存器中,而不像直接寻址那样直接给出。例:MOV AX ,SI;AX DS:SI MOV BX ,AX ;DS:BX AX 说明:可用于这种寻址方式的寄存器只能是SI、DI、BP 和 BX。SI,DI,BX 约定的段寄存器是D
6、S;而 BP 约定的段寄存器是SS。5基址寻址:方式:操作数的有效地址偏移量是基址寄存器BX 或基址指针 BP 的内容与指令给名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - - 定的位移量( 8 位或 16 位)之和。例:MOV AX ,ARRAYBX 等价MOV AX ,ARRAY+BX 将 DS:BX+ARRAY 的内容 AX 说明:BX 约定的段寄存器为DS,BP 约定 SS,可使用段跨越前缀。物理地址 =16(DS)+(B
7、X)+位移量( 8 或 16 位)或 16(SS)+(BP)+位移量( 8 或 16 位)6变址寻址操作数的有效地址是变址寄存器SI、DI 的内容与指令给定的位移量(8 位或16 位)之和。段寄存器约定在DS 中,允许段超越。例:MOV DI+12H ,AX ;DS:DI+12H AX MOV BX,SS:DI+45H ;BXSS:DI+45H 7基址变址寻址。方式:操作数的有效地址是指令给定的位移量和一个基址寄存器(BX 或 BP)及一个变址寄存器( SI 或 DI)的内容之和。段寄存器约定由基址寄存器决定,BX约定 DS,BP 约定 SS,允许段超越。例:MOV AX , ARRAYBX
8、SI ;等价MOV AX ,BX+SI+ARRAY ;即:AXDS:BX+SI+ARRAY 说明:基址寄存器 BX,BP 不能同时出现在一个方括号内;变址寄存器SI,DI 亦如此。8串操作寻址方式:用于串操作指令, 其操作数虽然也在寄存器中,但不使用上述寻址方式, 而是隐含地运用, SI 指出源串偏移地址, DI 指出目的串偏移地址。指令执行后,SI 和 DI 的内容根据方向标志DF 的值进行增减, DF=0 增,DF=1 减。若串操作按字节进行,增 /减“1” ;若串操作按字进行,增 /减“2” 。约定源串段地址在DS 中,目的串段地址在ES 中,不允许段超越。即SIDS DIES 名师资料
9、总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 20 页 - - - - - - - - - 例:MOVSB ;字节传送: ES:DI DS:SI。传送完后, SI1,DI1。9I/O 端口寻址:操作数在外设端口中。直接端口寻址:指令中直接给出的8 位常数是外设端口地址。 (0255)例:IN AL ,34H;AL 34H OUT 34H,AL ;34H AL 间接端口寻址:指令中外设端口的16 位地址在 DX 中。例:MOV DX, 280H IN AX ,DX;AX 280H
10、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 20 页 - - - - - - - - - 2 指令系统目前在微机上常见的汇编语言是MASM (Macro Assembler Language 宏汇编语言) ,因此我们以 8086/8088 MASM 为主要介绍内容, 也涉及一些 MASM 5.0 ,MASM 6.0 等版本内容。OPR 指令助记符SRC 源操作数DEST 目的操作数零操作数在指令中隐含指明了操作数所处的地方。一、 传送类指令1数据传送指令( MOVE
11、)格式: MOV DEST ,SRC (不区分大小写)功能:可以进行字节数据传递,也可以进行字数据传送。但SRC 和 DEST 的长度必须一致,不能一个是字节数据,而另一个是字数据。举例:CPU 通用寄存器之间传递MOV CL,AL ;8bit MOV SI,AX ;16bit 通用寄存器与段寄存器之间传递。MOV DS,AX ;AX 中 16 位DS MOV AX,ES;ESAX 通用寄存器与存储单元之间MOV AL ,BX ;DS 数据段( BX)所指存储单元内容AL MOV DI ,AX;AX 中 16 位数据 DS: (DI)(DI)+1 MOV 2000H, CX; CX 中 16
12、位DS: (2000H) (2001H)段寄存器和存储单元之间MOV DS,2000H;DS:2000H 2001HDS MOV BXSI ,CS;CSDS:BX+ (SI) (BX)+(SI)+1 立即数到通用寄存器。MOV SP,2000H;2000HSP 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - 立即数到存储单元。MOV WORD PTRSI ,4501H;4501HDS: (SI) (SI)+1 *PTR 汇编操
13、作符与 WORD 一起表示字操作,因为 4501H 类型不确定。BYTE PTR 限定字节。说明:MOV 指令数据传送方向如下图所示:除源操作数 SRC 是立即数的情况外, MOV 指令中 DST 和 SRC必须要用到一个寄存器,不允许用MOV 在两个存储单元之间传送数据。若需要时,可借助一通用寄存器为桥梁,即:MOV AL,SI MOV DI ,AL 不能用 CS 和 IP 作目的操作数,即这两个数的内容不能随便改变。不允许在段寄存器之间直接传送数据。不允许用立即数作目的操作数。不能向段寄存器送立即数, 因此,对段寄存器初始化赋值时, 要通过通用寄存器。MOV AX,DATA MOV DS,
14、AX 2交换指令( Exchange )格式:XCHG DST,SRC 功能:源操作数和目的操作数两者的内容相互交换。存储器通用寄存器AX BX CX DX BP SP SI DI 立即数CS 段 寄 存 器DS ES SS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - 举例;XCHG BX,BP SI 设指令执行前: (BX)=6F30H, (BP)=0200H, (SI)=0046H, (SS)=2F00H,(2F246
15、H)=4154H,SRC物理地址 =2F000+0200+0046=2F246 则:(BX)=4154, (2F246H)=6F30H 说明:两个操作数必须有一个在寄存器中。即可以在寄存器之间或寄存器与存储器之间交换信息。不允许使用段寄存器。允许字或字节操作,且不影响标志位。3堆栈操作指令( PUSH/POP)堆栈是以“后进先出” 的原则暂存一批需要保护的数据或地址的一个特定存储区。堆栈段段地址由 SS提供,偏移地址由SP提供, SP始终指向栈顶。堆栈操作有压栈( PUSH)和出栈( POP)两种,均以字为单位。压栈过程:例 PUSH AX SPSP1 (SP)AH SPSP1 (SP)AL
16、出栈过程:例 POP BX BL(SP)SPSP+1 BH(SP)SPSP+1 4标志位传送指令。对标志位寄存器进行操作有4 条指令,都是零操作数。取标志寄存器指令( Load register AH from Flag)格式: LAHF 功能:把标志寄存器的低8 位传送给 AH 寄存器,即把SF,ZF,AF,PF名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - 和 CF 标志位分别送至AH 的第 7、6、4、2、0 位,AH
17、的第 5、3、1 位是任意的,指令对标志寄存器的各位无影响。存储标志寄存器( store register AH into Flag)格式: SAHF 功能:把寄存器 AH 中的第 7、6、4、2、0 位的内容送至 FR 的 SF、ZF、AF、PF、CF 标志位,而 FR 的 OF、DF、IF、TF 各位不受影响。标志位进栈 (Push Flag) 格式: PUSHF 功能:将 FR 压入堆栈。该指令首先把堆栈指针SP减 2,然后将 16 位标志寄存的全部内容送入SP 指向的堆栈顶部字单元中。FR 中各标志位本身不受影响。进栈步骤: SPSP-1; (SP)( FR)HSPSP-1; (SP)
18、( FR)L堆栈采用“后进先出”原则。标志位出栈( POP Flag )格式: POPF 功能:将堆栈顶部的内容弹入标志寄存器。该指令首先根据SP找到堆栈顶部,并将堆栈顶部的一个字的内容送入FR,然后 SP加 2。FR 中各标志位的状态,由从堆栈中弹出内容的相应位决定。出栈步骤:(FR)L(SP) ;SPSP+1 (FR)H(SP) ;SPSP+1;PSHF 和 POPF 一般用在子程序和中断处理程序的首尾,起保存和恢复主程序标志的作用。FR 中 CF、DF、IF 有专门指令进行修改,其余标志位都没有指令对它们直接进行设置或修改。若要修改这些位,可首先用LAHF 把含 SF 的FR 低 8 位
19、送入 AH,对 AH 相应位进行修改,然后用SAHF 送回 FR。对 TF 位修改可先用 PSHF将 FR 压入堆栈,在堆栈中设置TF,然后用POPF返回。5地址传送指令。该指令传送的是存储单元的地址,而不是它的内容。装入有效地址( Load effective address ): 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - 格式:LEA DST, SRC 功能:将源操作数的有效地址(即偏移量EA)送到指定的寄存器。举例
20、:LEA BX,0F62H BXSI 若指令执行前:(BX)=0400H,(SI)=003CH 则指令执行后:(BX)=0400+003C+0F62=139EH 说明:目的操作数一定是16 位的通用寄存器;此指令对FR各位无影响。存放一个存储单元逻辑地址的地址指针需要4 个 byte,其中高 16 位(两个高字节)用来存放基址,低16 位(两个低字节)用来存放偏移量。LDS(Load DS with Pointer)指针送寄存器和DS:格式:LDS DST,SRC 功能:把源操作数指定的4 个相继字节送到由指令指定的寄存器及DS 寄存器中。该指令常指定SI 寄存器。举例:LDS SI ,10H
21、 若指令执行前:(DS)=C000H, (C0010H)=0180H, (C0012H)=2000H,则指令执行后:(SI)=0180H, (DS)=2000H LES(Load ES With Pointer)指针送寄存器和ES 格式:LES DST,SRC 功能:把源操作数指定的4 个相继字节送到由指令指定的寄存器及ES 寄存器中。该指令常指定DI。二、 算术运算类指令。1加法指令( Addition)格式:ADD DEST ,SRC 功能: 目的操作数和源操作数相加,它们的和存放在目的操作数中,源操作数内容不变,即, DST(DST)+(SRC)说明:DST:通用寄存器,存储器SRC:通
22、用寄存器,存储器,立即数FR:影响 CF、DF、AF、ZF、SF、OF 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 20 页 - - - - - - - - - 两操作数不能同时为存储器操作数。参加运算的数可以是带符号数或无符号数。OF 位用来表示带符号数的溢出, CF 位用来表示无符号数的溢出。例:ADD AX ,BX ADD AL ,CL ADD CX,34 ADD DL,DA_BYTE 2带进位加法指令。格式: ADC DST ,SRC 功能: DST(DST
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年CPU指令系统 2022 CPU 指令系统
限制150内