第3节1 数据传送指令.ppt_第1页
第3节1 数据传送指令.ppt_第2页
第3节1 数据传送指令.ppt_第3页
第3节1 数据传送指令.ppt_第4页
第3节1 数据传送指令.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、3.38086指令系统, 数据传送指令 算术指令 逻辑指令 串处理指令 控制转移指令 处理机控制与杂项操作指令,重点关注: 指令的汇编格式 指令的基本功能 指令支持的寻址方式 指令的执行对标志位的影响 指令的特殊要求,例如:MOV BL,44,1.通用数据传送指令,MOV WORD PTR DI,2178H,3.3.1数据传送指令,3.38086指令系统,数据传送指令的功能是将数据、地址或立即数传送到寄存器或存储单元中。,格式:,MOV DST ,SRC,DST是目的操作数,可以是寄存器或存储单元。,SRC是源操作数,可以是寄存器、存储单元或立即数。,(1)立即数传送给通用寄存器或存储单元,M

2、OV AX,3450H,MOV BYTE PTR DI,32H,不影响标志位。,立即数、CS和IP不能做目的操作数,MOV 指令不破坏源操作数的内容。,MOV 指令不允许从存储单元直接传送到存储单元。MOV BX,0100H ,源操作数和目的操作数长度应该相等。MOV BX, AL ,立即数不能直接传送到段寄存器中。MOV ES ,2000H ,源操作数与目的操作数不能同时是段寄存器,即不允许从段寄存器直接传送到段寄存器。,MOV AX,BX,MOV SI,DI,MOV 2000H,CX,MOV DS,BX,MOV DX,ES:2000H,MOV BX,ES,MOV CL,VAR1,(2) 通

3、用寄存器之间相互传送,MOV AL,BH,(3) 通用寄存器和存储器之间相互传送,(4) 段寄存器与通用寄存器、存储器之间相互传送,注意: * DST、SRC 不能同时为段寄存器 MOV DS, ES * 立即数不能直接送段寄存器 MOV DS, 2000H * DST 不能是立即数和CS:MOV 5,AL MOV CS,AX * DST、SRC 不能同时为存储器寻址 MOV DI, SI * 不影响标志位,MOV AX, DSEG MOV DS, AX,* MOV segreg, mem/reg(自学!) 此指令执行完后不影响中断,要等下一条指令执行完后才相应中断。如: MOV SS, AX

4、 MOV SP, BX 即:若要修改堆栈指针,则必须先修改SS后修改SP,反之MOV SP, BX MOV SS, AX 则可能插入中断,引起错误。,2.堆栈操作指令,(1) 堆栈,堆栈是按“后进先出”或“先进后出”的原则存取信息的一种存储机构。,是通过存储器的一部分来实现的。,0100H,00FFH,00FEH,00FDH,00FCH,00FBH,00FAH,00F9H,00F8H,00F7H,00F6H,0100H,SP,0000H,堆栈区,栈顶,0100H,00FFH,00FEH,00FDH,00FCH,00FBH,00FAH,00F9H,00F8H,00F7H,00F6H,SP,000

5、0H,堆栈区,栈顶,入栈指令:,PUSH 源,执行的操作:,指令功能:,字压入堆栈, , , ,SS段首地址,02000H,原SP,02008H,02009H,0200AH,0200H,SS,000AH,SP,+,-2,ED8A,CX,8A,ED,新SP,存储器,PUSH CX,*10H,(2)堆栈操作指令,出栈指令:,POP 目的,执行的操作:,指令功能:,字弹出堆栈, , , ,02000H,新SP,02008H,02009H,0200AH,0200H,SS,0008H,SP,+,+2,CX,原SP,存储器,POP CX,出栈指令:,*10H,SS段首地址,ED8A,1.PUSH、 POP

6、指令不能使用立即数,2.压入、弹出数据是以字为单位,3.不影响标志位,不能使用POP CS或POP IP,进栈指令: PUSH SRC 执行操作: (SP) (SP) 2 ( (SP)+1, (SP) ) (SRC) 出栈指令: POP DST 执行操作: (DST) ( (SP)+1, (SP) ) (SP) (SP) + 2 堆栈:先进后出的存储区,段地址存放在SS中, SP在任何时候都指向栈顶,进出栈后自动修改SP。 注意: 堆栈操作必须以字为单位 PUSH AL 不影响标志位 不能用立即寻址方式(286及其以上可以)PUSH 1234H DST不能是CS /IP POP CS POP

7、IP ,例:假设 (AX) = 2107 H , 执行 PUSH AX,* * * * * * * *,(SP),PUSH AX 执行前,(SP),* * * * * * * *,07H 21H,低地址 高地址,PUSH AX 执行后,(SP),* * * * * * * *,07H 21H,POP BX 执行前,(SP),* * * * * * * *,07H 21H,低地址 高地址,POP BX 执行后 (BX) = 2107H,例: POP BX,应用:例: PUSH DS SUB AX, AX PUSH AX RET 例: PUSH AX PUSH BX PUSH CX ;其间用到AX

8、、BX、CX POP CX ; 后进先出 POP BX POP AX,3、地址传送指令 有效地址送寄存器指令: LEA REG, SRC 执行操作: (REG) SRC 指针送寄存器和DS指令: LDS REG, SRC 执行操作: (REG) (SRC) (DS) (SRC+2) 相继二字 寄存器、DS 指针送寄存器和ES指令: LES REG, SRC 执行操作: (REG) (SRC) (ES) (SRC+2) 相继二字 寄存器、ES,3、地址传送指令,(1)有效地址传送指令,LEA BX , BP SI+789H ,LEA BX , LIST,MOV BX , OFFSET LIST,

9、(BX)=有效地址EA =(BP)+(SI)+789H, , , ,02000H,02008H,02009H,0200AH,存储器,DS,LIST,0008H,BX,0008H,LEA BP , 6000H,BP,6000H,(2)取地址指针指令,格式:LDS REG , SRC,例如:LDS SI , BX ,例如:LDS DI , 1000H ,例如:LDS DI,LIST,2002H,2001H,操作:(REG)(SRC) (SREG)(SRC+2),例:LEA BX, BX+SI+0F62H LDS SI, 10H LES DI, BX,40 H 00 H 00 H 30 H,TABL

10、E (DS):1000H,MOV BX, TABLE ; (BX)=0040H MOV BX, OFFSET TABLE ; (BX)=1000H LEA BX, TABLE ; (BX)=1000H LDS BX, TABLE ; (BX)=0040H ; (DS)=3000H LES BX, TABLE ; (BX)=0040H ; (ES)=3000H,注意: * 不影响标志位 * REG 不能是段寄存器 * SRC 必须为存储器寻址方式,例:比较: LEA BX, 2728H;(BX)=2728H MOV BX, 2728H;(BX)=DS段内2728H处一个字的内容 MOV BX,

11、2728H;(BX)=2728H LDS BX, 2728H;(BX)=DS段内2728H处一个字的内容 LEA BX, 2728H LDS BX, 2728H LES BX, 2728H LEA BX, SI LDS BX, SI LES BX, SI ,4、标志寄存器传送指令,(1)读取标志 指令,格式为:LAHF,执行的操作: (AH)(FLAGS 的低字节),(2)设置标志 指令,格式为:SAHF,执行的操作: (FLAGS 的低字节) (AH),(3)标志寄存器入栈指令,格式为:PUSHF,(4) 标志寄存器出栈指令,格式为:POPF,0,7,15,FLAGS,AH,0,7,SF Z

12、F AF PF CF,5、 数据交换指令,XCHG AX , BX,XCHG CX , BX SI ,XCHG 2000H , DX,注意,1.目的操作数和源操作数不能均为内存单元,2.段寄存器和IP寄存器既不能作为交换指令的源操作数 , 也不能作为 交换指令的目的操作数,XCHG DX ,BX,3.DST、SRC不允许是段寄存器、立即数和IP寄存器,4. 不影响标志位,6、换码指令,格式: XLAT,功能: 使换码器AL中的一个值变换为内存表格中的某个值.,例如:通信系统中用到一种编码,其中每个码由2个1、3个0组成,这种代码比较容易检错和纠错。具体编码如下:,0 1 2 3 4 5 6 7

13、,BX,2000H,若要将数字3转换成对应的代码,则将该数字送AL,表的首地址送BX中。,操作步骤:,MOV BX ,2000H,MOV AL , 3,XLAT,(BX) 30 H F0040,31 H F0041,(AL) = 3 32 H F0042,33 H F0043,TABLE,(DS)=F000H,换码指令:XLAT 或XLAT OPR 执行操作:(AL) ( (BX) + (AL) ) 实现功能:完成编码制的转换即实现字节翻译功能 例:MOV BX, OFFSET TABLE ; (BX)=0040H MOV AL, 3 XLAT TABLE 指令执行后 (AL)=33H 注意:

14、 * 不影响标志位 * 字节表格(长度不超过256) 首地址 (BX) * 需转换的代码位移量 (AL), 累加器专用传送指令(只限使用AX或AL) (1)输入指令 IN (I/O CPU) 长格式: IN AL, PORT (字节) IN AX, PORT (字) 执行操作:(AL) ( PORT ) (字节) (AX) ( PORT+1, PORT )(字) 短格式: IN AL, DX (字节) IN AX, DX (字) 执行操作:(AL) ( (DX) ) (字节) (AX) ( (DX)+1, (DX) )(字),7、输入/输出指令,(2)输出指令 OUT (CPU I/O) 长格

15、式: OUT PORT, AL (字节) OUT PORT, AX (字) 执行操作:( PORT ) (AL) (字节) ( PORT+1, PORT ) (AX)(字) 短格式: OUT DX, AL (字节) OUT DX, AX (字) 执行操作:( (DX) ) (AL) (字节) ( (DX)+1, (DX) ) (AX)(字),7、输入/输出指令,(1)IN 输入指令,长格式为:IN AL , PORT 例: IN AL, 80H IN AX , PORT 例: IN AX , 2EH,短格式为:IN AL , DX 例:MOV DX,120H IN AL, DX,(2)OUT 输出指令,长格式为:OUT PORT ,AL 例: OUT 80H , AL OUT PORT ,AX 例: OUT 2EH , AX,短格式为:OUT DX , AL 例: MOV DX,120H OUT DX , AL,IN AX , DX 例: MOV DX,320H IN AX , DX,OUT DX , AX 例: MOV DX,320H OUT DX , AX,注意

温馨提示

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

评论

0/150

提交评论