汇编语言2-2传送指.ppt

上传人:hyn****60 文档编号:87278503 上传时间:2023-04-16 格式:PPT 页数:45 大小:379.50KB
返回 下载 相关 举报
汇编语言2-2传送指.ppt_第1页
第1页 / 共45页
汇编语言2-2传送指.ppt_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《汇编语言2-2传送指.ppt》由会员分享,可在线阅读,更多相关《汇编语言2-2传送指.ppt(45页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、封面封面电子教案1 MOV AH,9 MOV AH,9 LEA DX,STR LEA DX,STR INT 21H INT 21H MOV AH,4CH MOV AH,4CH INT 21H INT 21HCODE ENDSCODE ENDS END START END START DATA SEGMENTDATA SEGMENTSTR DB STR DB PROGRAM EXAMPLE$PROGRAM EXAMPLE$DATA ENDSDATA ENDSCODE SEGMENTCODE SEGMENT ASSUME:DS:DATA,CS:CODE ASSUME:DS:DATA,CS:CODE

2、START:MOV AX,DATASTART:MOV AX,DATA MOV DS,AX MOV DS,AX2.1 概概 述述.2 指令系统指令系统3.1 概概 述述一、指令的分类一、指令的分类二、汇编语言指令格式二、汇编语言指令格式三、了解指令的几个方面三、了解指令的几个方面4指令系统是指令系统是CPU指令的集合,指令的集合,Intel 8086指令系统共有指令系统共有117条基本指令,条基本指令,按功能分为按功能分为六六大类大类:(1)数据传送类;)数据传送类;(2)算术运算类;)算术运算类;(3)逻辑运算和移位)逻辑运算和移位(位操作类);位操作类);(4)串操作;)串操作;(5)控制转

3、移类;)控制转移类;(6)处理器控制。)处理器控制。一、一、指令的分类指令的分类5二、汇编语言指令格式二、汇编语言指令格式 汇编语言指令的汇编语言指令的一般一般格式如下:格式如下:标号标号操作码操作码操作数操作数;注释注释标号标号:指示了该条指令在代码段中的:指示了该条指令在代码段中的地址地址,必须以,必须以字母字母开头、字开头、字母数据组成,可以省略。母数据组成,可以省略。操作码:操作码:该指令的功能,表明该条指令将进行什么样的操作,它该指令的功能,表明该条指令将进行什么样的操作,它对应一条二进制编码的机器指令对应一条二进制编码的机器指令,必须有。必须有。操作数:操作数:提供指令的操作对象提

4、供指令的操作对象,一条指令可以一条指令可以没有没有操作数,也可操作数,也可以有以有1个或个或2个操作数。个操作数。绝大多数指令的操作数要绝大多数指令的操作数要显式显式的写出来,但也有指令的操作数是的写出来,但也有指令的操作数是隐含隐含的。要求在指令中显式地写出来时,则在书写时必须遵守:的。要求在指令中显式地写出来时,则在书写时必须遵守:指令助忆符和操作数之间要有指令助忆符和操作数之间要有分隔符分隔符,分隔符可以是多个,分隔符可以是多个空格空格;如果指令含有多个操作数,则操作数之间要用逗号如果指令含有多个操作数,则操作数之间要用逗号“,”分开。分开。指令后面还可以书写注释内容,注释之前需书写分号

5、指令后面还可以书写注释内容,注释之前需书写分号“;”6在学习汇编指令时,指令的在学习汇编指令时,指令的功能功能是我们学习和掌握的重点,但是我们学习和掌握的重点,但要准确、有效地运用这些指令,我们还要熟悉系统对每条要准确、有效地运用这些指令,我们还要熟悉系统对每条指令的一些指令的一些规定规定或或约束约束。归纳起来,对指令还要掌握以下几个方面内容:归纳起来,对指令还要掌握以下几个方面内容:u熟记每条指令的熟记每条指令的名称名称、功能功能、书写格式;书写格式;u指令对标志位指令对标志位的影响、的影响、标志位对指令标志位对指令的影响,以及的影响,以及指令隐指令隐含使用含使用,或,或限制使用限制使用的寄

6、存器以及需要的寄存器以及需要事先设置的参数;事先设置的参数;三、了解指令的几个方面三、了解指令的几个方面7 大大多多数数数数据据传传送送类类指指令令、算算术术运运算算类类指指令令、位位操操作作类类指指令令及及串串操操作作类类指指令令,其其双双操操作作数数指指令令有有相相同同的的语语句句格格式式和和操作规定。操作规定。语句格式:语句格式:标号:标号:操作符操作符 ,;注释注释 算算术术运运算算和和位位操操作作类类指指令令的的部部分分单单操操作作数数指指令令有有相相同同的的语语句格式和操作规定。句格式和操作规定。语句格式:语句格式:标号:标号:操作符操作符 ;注释注释8086CPU的指令的共同规律

7、的指令的共同规律8 对对于双操作数指令于双操作数指令,源操作数和目的操作数源操作数和目的操作数应该应该类类型型相同相同,即必即必须须同同时为时为字字节类节类型或同型或同时为时为字字类类型。型。对对于双操作数指令,源操作数和目的操作数于双操作数指令,源操作数和目的操作数不能同不能同时为时为存存储储器操作数器操作数。对对于于单单操作数指令,操作数不能是操作数指令,操作数不能是立即操作数立即操作数。9.2 指令系统一、一、数据传送类数据传送类;二、二、算术运算类算术运算类;三、三、逻辑运算和移位逻辑运算和移位类类;四、四、串操作串操作类类;五、五、控制转移类控制转移类类类;六、六、处理器控制处理器控

8、制类;类;10(1)通用数据传送指令)通用数据传送指令MOV(2)数据交换指令数据交换指令XCHG(3)地址传送指令地址传送指令LEA/LDS/LES(4)堆栈操作指令堆栈操作指令PUSHPOP(5)标志寄存器传送指令标志寄存器传送指令LAHF/SAHF、PUSHF/POPF(6)换码指令)换码指令XLAT一、数据传送类指令u数据传送是计算机中最基本、最重要的一种操作数据传送是计算机中最基本、最重要的一种操作,数据传送数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元指令负责把数据、地址或立即数传送到寄存器或存储单元中。是最常用的一类指令。中。是最常用的一类指令。u除标志寄存器传送指令

9、外,均除标志寄存器传送指令外,均不影响标志位不影响标志位u重点掌握重点掌握MOV XCHG XLAT PUSH POP LEA11一、通用数据传送指令MOV指令格式:指令格式:MOV OPRD1,OPRD2功能:将源操作数(功能:将源操作数(OPRD2)传送入目的地址,传送入目的地址,源地址内容不变。源地址内容不变。即即(OPRD1)(OPRD2)下图描述了下图描述了MOV指令在传送数据时允许传送的路指令在传送数据时允许传送的路径及类型。径及类型。12MOV指令所允许的数据传送路径及类型指令所允许的数据传送路径及类型类型类型131)从通用寄存器到通用寄存器)从通用寄存器到通用寄存器 MOV r

10、eg1,reg22)立即数传送到通用寄存器立即数传送到通用寄存器 MOV reg,imm 3)通用寄存器和存储单元之间通用寄存器和存储单元之间 MOV mem(reg),reg(mem)4)立即数传送到存储单元立即数传送到存储单元 MOV mem,imm5)段寄存器与通用寄存器间的数据传送段寄存器与通用寄存器间的数据传送 MOV seg,reg 或或 MOV reg,seg 6)段寄存器与存储单元间的数据传送段寄存器与存储单元间的数据传送MOV seg,mem 或或 MOV mem,seg MOV指令的形式有如下几种指令的形式有如下几种 14例1:立即数传送MOV AL,4;AL4,字节传送字

11、节传送MOV CX,0FFH;CX00FFH,字传送字传送MOV BYTE PTR SI,0AH ;BYTE PTR 说明是字节操作说明是字节操作MOV WORD PTR SI+2,0BH;WORD PTR 说明是字操作说明是字操作 注意立即数是字节量还是字变量注意立即数是字节量还是字变量 明确指令是字节操作还是字操作明确指令是字节操作还是字操作15例2:寄存器传送MOV AX,BX;AXBX,字传送字传送MOV AH,AL;AHAL,字节传送字节传送MOV DS,AX;DSAX,字传送字传送MOV BX,AL;BXAL,字节传送字节传送 不存在存储器向存储器的传送指令不存在存储器向存储器的传

12、送指令16例3:段寄存器传送MOV SI,DSMOV AX,ES;AXESMOV DS,AX;DSAXES 对段寄存器的操作有一些限制对段寄存器的操作有一些限制17MOV指令使用的注意事项(指令使用的注意事项(牢记牢记)1.MOV1.MOV指令不破坏源操作数内容。指令不破坏源操作数内容。2.MOV2.MOV指令不允许从存储单元直接传送到存储单元。指令不允许从存储单元直接传送到存储单元。3.3.源操作数和目的操作数长度应该相等。源操作数和目的操作数长度应该相等。4.4.立即数不能做目的操作数。立即数不能做目的操作数。5.5.段寄存器段寄存器CSCS不可以做目标操作数不可以做目标操作数 下列指令是

13、错误的:下列指令是错误的:MOV SIMOV SI,DIDI MOV AX MOV AX,BL BL MOV 23 MOV 23,CL CL MOV CS MOV CS,BX BX 18非法传送种种非法传送种种两个操作数的类型不一致两个操作数的类型不一致例如源操作数是字节,而目的操作数是字;或相反例如源操作数是字节,而目的操作数是字;或相反两个操作数不能都是存储器两个操作数不能都是存储器传送指令很灵活,但主存之间的直接传送却不允许传送指令很灵活,但主存之间的直接传送却不允许段寄存器的操作有一些限制段寄存器的操作有一些限制段寄存器属专用寄存器,对他们的操作能力有限段寄存器属专用寄存器,对他们的操

14、作能力有限示例示例示例示例示例示例示例示例示例示例示例示例193、要小心段寄存器的操作、要小心段寄存器的操作不允许立即数传送给段寄存器不允许立即数传送给段寄存器MOV DS,100H;立即数不能传送段寄存器立即数不能传送段寄存器不允许直接改变不允许直接改变CS值值MOV CS,AX;不允许使用的指令不允许使用的指令不允许段寄存器之间的直接数据传送不允许段寄存器之间的直接数据传送MOV DS,ES;不允许段寄存器间传送不允许段寄存器间传送非法传送种种非法传送种种22数据传送指令数据传送指令MOVMOV实例实例设:设:A、B为同一数据段中的为同一数据段中的字节字节类型变量,分析下列指令,说类型变量

15、,分析下列指令,说明其是否合法。明其是否合法。1、MOV AL,BX2、MOV AL,AH3、MOV AL,1234H4、MOV A,B5、MOV ABX+BP,06、MOV AL,3007、MOV SI,BX 8、MOV SI,BL 9、MOV AL,BL10、MOV 5,AL思考思考23二二、数据交换指令、数据交换指令XCHG格式:格式:XCHG OPD,OPS功能:将源地址与目的地址中的内容互换。功能:将源地址与目的地址中的内容互换。即(即(OPD)OPS,(,(OPS)OPD。【例例】寄存器与存储器之间数据交换。寄存器与存储器之间数据交换。MOV AX,5678H;AX=5678HMO

16、V BX,0FFFFH;BX=0FFFFHXCHGAX,BX ;AX=0FFFFH,BX=5678H注意:注意:不能在存储器与存储器之间交换数据不能在存储器与存储器之间交换数据24三、地址三、地址传送指令传送指令LEALEALDSLDSLESLES地址传送指令用来传送操作数的地址传送指令用来传送操作数的地址地址251、有效地址传送指令、有效地址传送指令LEA功能:将源操作数的功能:将源操作数的有效地址有效地址传送至指定的传送至指定的16位寄存器中位寄存器中格式:格式:LEA r16,memLEA r16,mem;r16memr16mem的的有效地址有效地址EAEA例:设例:设BX=0400H,

17、SI=003CH LEA BP,2050h;执行后执行后 BP=2050H LEA BP,SI ;执行后执行后 BP=003CH LEA BX,BX+SI+0F62H;执行后执行后 BX=139EH备注:备注:指令中指令中“r16”常用常用的寄存器是的寄存器是BX、BP、SI、DI。一般不使用其他寄存器。一般不使用其他寄存器。源操作数源操作数mem是一个存储器操作数,常用的是变量名,而是一个存储器操作数,常用的是变量名,而不是上面例子中举的形式,如:不是上面例子中举的形式,如:LEA BX,BUFFER。所以,本所以,本条指令常被描述为条指令常被描述为“取变量的偏移地址取变量的偏移地址”,属常

18、用指令。,属常用指令。26例9:获取有效地址MOV BX,0400HMOV SI,3CHLEA BX,BX+SI+0F62H;BX0400H003CH0F62H139EH 获获得得内内存存单单元元的的有有效效地地址址;不不是是物物理理地地址,也不是该单元的内容址,也不是该单元的内容 可以实现计算功能可以实现计算功能272、指针传送指令(、指针传送指令(LDS)LDS r16,memLDS r16,mem;r16memr16mem,;DSmem+2DSmem+2LDSLDS指令将主存指令将主存中中memmem指指定的低字送至定的低字送至r16r16,并将并将memmem的高字送的高字送DSDS寄

19、存器寄存器LES r16,memLES r16,mem;r16memr16mem,;ESmem+2ESmem+2LESLES指令将主存中指令将主存中memmem指指定的低字送至定的低字送至r16r16,并将并将memmem的高字送的高字送ESES寄存器寄存器28例10:地址指针传送设设DS=400H,BX=100H,SI=200H,04300=0005H,04302H=5020H,则执行指令则执行指令LDS SI,BX+SI 后,后,SI=0005H,DS=5020H2905H00H20H50H04000H04000H0100H0100H0200H0200H+04300H04300HDSDSB

20、XBXSI SI 04300H04300HSISIDSDS示意图:示意图:LDS SILDS SI,BX+SIBX+SI30小结小结LEA指令与指令与MOV指令的区别:指令的区别:“LEA”指令取内存单元的指令取内存单元的偏移地址偏移地址;“MOV”指令取内存单元的指令取内存单元的内容内容。举例说明:举例说明:l目的操作数只能是目的操作数只能是16位通用寄存器位通用寄存器31 83000操作码操作码DS 8000BX 2000 +SI 100083000HAHALAX代码段数据段.2356指令操作例:指令操作例:MOV AX,BXSI假定:假定:DS=8000H,BX=2000H,SI=100

21、0H则物理地址则物理地址 =80000H+2000H+1000H=83000H=80000H+2000H+1000H=83000H指令执行后指令执行后:AX=5623H AX=5623H LEA AXLEA AX,BXSI AX=?BXSI AX=?32堆栈只有两种基本操作:进栈和出栈,对应两条堆栈只有两种基本操作:进栈和出栈,对应两条指令指令PUSH和和POP。其格式为:其格式为:四、堆栈操作指令堆栈操作指令PUSH/POPPUSH r16/m16/segPUSH r16/m16/seg;SPSPSPSP2 2;SS:SPr16/m16/segSS:SPr16/m16/segPOP r16/

22、m16/segPOP r16/m16/seg;r16/m16/segSS:SPr16/m16/segSS:SP;SPSPSPSP2 2操作过程操作过程33设设AXAX0AA55H0AA55H,SPSP2000H,2000H,执行指令执行指令PUSH AXPUSH AX后,后,AXAX?、?、SPSP?例例4:PUSH传送传送指令执行后指令执行后 SS:SPSS:SP指令执行前指令执行前xxHxxHxxHAAH55HSS:SPSS:SPxxHxxHxxH34例例5:POP传送传送设设AXAX0A500H,SP0A500H,SP2000H,2000H,执行指令执行指令POP AXPOP AX后,后

23、,AXAX?、?、SPSP?SS:SPSS:SP指令执行前指令执行前xxH11H33H35特点:指令操作结果不影响标志寄存器特点:指令操作结果不影响标志寄存器说明:说明:是一单操作数指令,且只能是通用寄存器操作数、内存操作数是一单操作数指令,且只能是通用寄存器操作数、内存操作数由于堆栈以由于堆栈以字方式字方式编址,操作数必须是字(编址,操作数必须是字(1616位)操作数位)操作数内存操作数可以用任意一种有效的寻址方式表示内存操作数可以用任意一种有效的寻址方式表示操作数可以是段寄存器,操作数可以是段寄存器,(POP指令指令CS除外)除外)堆栈指令小结:堆栈常用来临时存放数据传递参数保存和恢复寄存

24、器36标志寄存器传送指令用来传送标志寄存器标志寄存器传送指令用来传送标志寄存器FLAGS的内容,方便进行对各个标志位的直接操作。的内容,方便进行对各个标志位的直接操作。有有2对对4条条指令指令低低8位传送:位传送:LAHF和和SAHF16位传送:位传送:PUSHF和和POPF五、标志寄存器传送指令五、标志寄存器传送指令37LAHFLAHF;AHFLAGSAHFLAGS的低字节的低字节LAHFLAHF指令将标志寄存器的指令将标志寄存器的低字节送寄存器低字节送寄存器AHAHSF/ZF/AF/PF/CFSF/ZF/AF/PF/CF状态标志状态标志位分别送入位分别送入AHAH的第的第7/6/4/2/0

25、7/6/4/2/0位,位,SAHFSAHF;FLAGSFLAGS的低字节的低字节AHAHSAHFSAHF将将AHAH寄存器内容送寄存器内容送FLAGSFLAGS的低字节的低字节用用AHAH的第的第7/6/4/2/07/6/4/2/0位相位相应设置应设置SF/ZF/AF/SF/ZF/AF/PF/CFPF/CF标志标志标志寄存器传送指令标志寄存器传送指令38标志寄存器进出堆栈指令标志寄存器进出堆栈指令PUSHFPUSHF;SPSPSPSP2 2;SS:SPFLAGSSS:SPFLAGSPUSHFPUSHF指令将标志寄存器指令将标志寄存器的内容压入堆栈,同的内容压入堆栈,同时栈顶指针时栈顶指针SPS

26、P减减2 2POPFPOPF;FLAGSSS:SPFLAGSSS:SP;SPSPSPSP2 2POPFPOPF指令将栈顶字单元内指令将栈顶字单元内容送标志寄存器,同时容送标志寄存器,同时栈顶指针栈顶指针SPSP加加2 239例11:置位单步标志PUSHFPUSHF;保存全部标志到堆栈保存全部标志到堆栈POP AXPOP AX;从堆栈中取出全部标志从堆栈中取出全部标志OR AX,0100HOR AX,0100H;设置设置D8=TF=1D8=TF=1,;AXAX其他位不变其他位不变PUSH AXPUSH AX;将;将AXAX压入堆栈压入堆栈POPFPOPF;FLAGSAXFLAGSAX;将堆栈内容

27、取到标志寄存器将堆栈内容取到标志寄存器OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0 程序设计需要利用标志的状态程序设计需要利用标志的状态40小结小结 LAHF;AH标志寄存器低标志寄存器低8位,即位,即SF/ZF/AF ;PF/CF送送AH相应位,不影响标志。相应位,不影响标志。SAHF;标志寄存器低标志寄存器低8位位 AH,该条指令影该条指令影 ;响前五个标志。;响前五个标志。PUSHF;标志寄存器入栈,不影响标志。标志寄存器入栈,不影响标志。16位位 POPF;标志寄存器标志寄存器SS:SP,SPSP+2;该指令影响标志。该指令影响标志。16位位四条指令均为四

28、条指令均为无无操作数指令操作数指令41六、其他数据传送指令六、其他数据传送指令 XLAT XLAT 换码指令换码指令指令格式:指令格式:XLATXLAT或或XLAT OPRXLAT OPR指令功能:将指令功能:将ALAL与与BXBX寄存器内容之和作为偏移地址,将其寄存器内容之和作为偏移地址,将其所对应的存储单元内容送入所对应的存储单元内容送入ALAL寄存器。寄存器。u换码指令执行前:换码指令执行前:在内存建立一个在内存建立一个字节字节量表格,内含要转换成的目的代码量表格,内含要转换成的目的代码表格首地址存放于表格首地址存放于BXBX,ALAL存放相对表格首地址的存放相对表格首地址的位移量位移量

29、u换码指令执行后:换码指令执行后:将将ALAL寄存器的内容转换为目标代码寄存器的内容转换为目标代码P45P4542例例 MOV AL,5 MOV BX,offset K5 XLAT执行情况如图执行情况如图3.4所示所示;执行后执行后AL=32 AL=5图图3.4 XLAT指令使用例指令使用例K51248163264实际的应用:常用于查表并将一种代码转换为另一种代码实际的应用:常用于查表并将一种代码转换为另一种代码43数据传送类指令l 通用数据传送指令(通用数据传送指令(MOV、XCHG、PUSH、POP)地址传送指令(地址传送指令(LEA、LDS、LES)标志寄存器传送指令标志寄存器传送指令(LAHF、SAHF、PUSHF、POPF)换码指令(换码指令(XLAT)l数据传送是计算机中最基本、最重要的一种操作数据传送是计算机中最基本、最重要的一种操作l传送指令也是最常使用的一类指令传送指令也是最常使用的一类指令l除标志寄存器传送指令(除标志寄存器传送指令(SAHF和和POPF)外,本类的其它外,本类的其它指令均不影响标志位指令均不影响标志位l重点掌握以下指令:重点掌握以下指令:MOV、XCHG、PUSH POP、LEA、LAHF、SAHF、PUSHF、POPF XLAT44作业作业45

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com