收藏 分销(赏)

工学第讲指令系统.pptx

上传人:丰**** 文档编号:4339079 上传时间:2024-09-08 格式:PPTX 页数:120 大小:1.98MB 下载积分:20 金币
下载 相关 举报
工学第讲指令系统.pptx_第1页
第1页 / 共120页
工学第讲指令系统.pptx_第2页
第2页 / 共120页


点击查看更多>>
资源描述
第三讲第三讲 指令系统指令系统内容提要:内容提要:一、指令概述一、指令概述二、寻址方式二、寻址方式三、指令系统三、指令系统2一、指令概述一、指令概述1.1 1.1 基本概念基本概念指令:指令:计算机能够识别和执行的各种操作命令。计算机能够识别和执行的各种操作命令。指令系统:指令系统:是一台计算机或一种微处理器能执行的各是一台计算机或一种微处理器能执行的各种不同类型操作命令的集合。种不同类型操作命令的集合。8086/8088CPU8086/8088CPU指令系统共有指令系统共有119/117119/117条基本指令。条基本指令。指令的指令的组成组成:操作码操作码操作数操作数操作码操作码说明计算机要执行哪种操作,如传送、运算、移说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分。位、跳转等操作,它是指令中不可缺少的组成部分。每种指令的操作码:每种指令的操作码:使用唯一的一组二进制编码表示;使用唯一的一组二进制编码表示;如:如:10110000B10110000B对应一个唯一的助记符对应一个唯一的助记符(指令功能的英文缩写指令功能的英文缩写););如:如:MOVMOV3操作数操作数是指令执行的参与者,即各种操作对象。是指令执行的参与者,即各种操作对象。有些指令不需要操作数;一般指令通常有一个或两个有些指令不需要操作数;一般指令通常有一个或两个操作数,也有个别指令有操作数,也有个别指令有3 3个甚至个甚至4 4个操作数。个操作数。可以是一个具体数值,如:可以是一个具体数值,如:MOV ALMOV AL,06H06H可以是存放数据的寄存器名,如:可以是存放数据的寄存器名,如:MOV MOV ALAL,06H06H可以是存放数据的存储器地址,如:可以是存放数据的存储器地址,如:MOV MOV 2000H2000H,ALAL下一条执行指令的地址信息,如:下一条执行指令的地址信息,如:CALL CALL SUB_SERSUB_SER一、指令概述一、指令概述指令书写形式:指令书写形式:助记符格式助记符格式、机器代码格式机器代码格式。1.2 1.2 助记符格式助记符格式 标号标号:操作码助记符操作码助记符 操作数助记符操作数助记符 ;注释;注释 助记符格式:也叫符号指令格式助记符格式:也叫符号指令格式可有可无可有可无4一、指令概述一、指令概述F标号标号:代表该条指令存放的地址。为程序分支、循环、跳:代表该条指令存放的地址。为程序分支、循环、跳转提供转移目标地址。标号后加写冒号转提供转移目标地址。标号后加写冒号“:”作为间隔符。作为间隔符。F操作数助记符操作数助记符:给出了参与运算的操作数个数和位置,可:给出了参与运算的操作数个数和位置,可以有若干个。有两个操作数时通常称以有若干个。有两个操作数时通常称第一个为目的操作数第一个为目的操作数,第二个为源操作数第二个为源操作数。F操作码助记符操作码助记符:说明指令要完成的操作与性质。:说明指令要完成的操作与性质。F注释:注释:以分号以分号“;”开始,对指令加以说明以方便阅读程序开始,对指令加以说明以方便阅读程序例如:例如:MOVMOV传送指令的格式:传送指令的格式:LOOP:MOV dest,src LOOP:MOV dest,src ;destsrc destsrc 其功能为:在标号其功能为:在标号LOOPLOOP处完成数据传送,将源操作数处完成数据传送,将源操作数srcsrc送到目的操作数送到目的操作数destdest,即,即srcsrc不变,不变,destdest更改为更改为src.src.并对此语句进行注释说明。并对此语句进行注释说明。5一、指令概述一、指令概述1.3 1.3 机器指令格式机器指令格式 MOV AL,05 MOV AL,05;机器代码是:机器代码是:B0H 05HB0H 05H;第一个字节第一个字节B0HB0H是操作码(含一个操作数是操作码(含一个操作数ALAL)第)第二个字节二个字节05H05H是立即数;是立即数;MOV AX,0102H MOV AX,0102H;机器代码是:机器代码是:B8H 02H 01HB8H 02H 01H;第一个字节第一个字节B8HB8H是操作码(含一个操作数是操作码(含一个操作数AXAX),第),第二、三个字节二、三个字节02H 01H 02H 01H 是是1616位立即数(低字节位立即数(低字节0202在低地址)。在低地址)。B0H05HB8H02H01H低低高高第三讲第三讲 指令系统指令系统内容提要:内容提要:一、指令概述一、指令概述二、寻址方式二、寻址方式三、指令系统三、指令系统7二、寻址方式二、寻址方式根据操作数所存放的位置不同,可将各种根据操作数所存放的位置不同,可将各种寻址方式分为如下四类:寻址方式分为如下四类:立即寻址方式立即寻址方式寄存器寻址方式寄存器寻址方式 存储器寻址方式存储器寻址方式I/OI/O端口寻址方式端口寻址方式 指令系统设计了多种操作数的来源;指令系统设计了多种操作数的来源;寻找操作数的过程就是操作数的寻找操作数的过程就是操作数的寻址方式寻址方式;操作数采取哪种寻址方式,会影响机器运行速操作数采取哪种寻址方式,会影响机器运行速度和效率。度和效率。8二、寻址方式二、寻址方式2.1 2.1 立即寻址方式立即寻址方式 指指令令操操作作码码和和操操作作数数都都在在存存储储器器代代码码段段中中,操操作作数数紧紧跟跟在在操操作码之后;作码之后;这种操作数被称为立即数这种操作数被称为立即数immimm。可以是。可以是8 8位数值(位数值(00H00HFFHFFH)或)或1616位数值(位数值(0000H0000HFFFFHFFFFH),也可为),也可为3232位数值。位数值。立即数寻址方式常用来给寄存器赋值;立即数寻址方式常用来给寄存器赋值;例:例:MOV AXMOV AX,10 ;10 ;执行后执行后 AX=AX=?该该例例中中源源操操作作数数为为立立即即寻寻址址方方式式,立立即即数数为为1010,存存放在指令的下一单元。放在指令的下一单元。指令码指令码0A0A0000执行:执行:10AX10AX执行后:执行后:AX=000AHAX=000AH 例例:MOV MOV AXAX,1234H 1234H;十十六六进进制数制数1234H1234H送入送入AXAX。代码段代码段例:例:MOV EBX,20031231H MOV EBX,20031231H ;20031231H20031231H送入送入EBXEBX低地址低地址高地址高地址9二、寻址方式二、寻址方式2.2 2.2 寄存器寻址方式寄存器寻址方式 操作数存放在指令规定的寄存器中,可以是:操作数存放在指令规定的寄存器中,可以是:1616位寄存器:位寄存器:AXAX,BXBX,CXCX,DXDX,SISI,DIDI,SPSP或或BPBP;8 8位寄存器:位寄存器:AHAH,ALAL,BHBH,BLBL,CHCH,CLCL,DHDH或或DLDL;段段寄存器:寄存器:CSCS,DSDS,ESES,SSSS;3232位寄存器:位寄存器:EAXEAX、EBXEBX、ECXECX、EDXEDX等。等。例:例:MOV AXMOV AX,BX BX;将寄存器;将寄存器BXBX的内容送入的内容送入AXAX中。中。例:例:下列程序执行后,下列程序执行后,AX=AX=?,?,BX=BX=?MOV AXMOV AX,1234H1234H MOV BX MOV BX,5678H5678H ADD AX ADD AX,BXBX执行:执行:1234HAX 1234HAX 5678HBX 5678HBX AX+BXAXAX+BXAX执行后:执行后:AX=68ACHAX=68ACH BX=5678H BX=5678H例:例:ADD EAX,ECX ADD EAX,ECX;EAXEAX和和ECXECX中的内容相加,和送中的内容相加,和送EAXEAX中,中,;ECXECX不变不变10二、寻址方式二、寻址方式2.3 2.3 存储器寻址方式存储器寻址方式 操作数存放在操作数存放在存储器某个逻辑段的存储单元存储器某个逻辑段的存储单元中,根据中,根据存储存储单元物理地址的产生方式单元物理地址的产生方式可分为如下五种:可分为如下五种:直接寻址;直接寻址;寄存器间接寻址;寄存器间接寻址;寄存器相对寻址寄存器相对寻址;基址变址寻址;基址变址寻址;基址变址相对寻址;基址变址相对寻址;指令中给出操作数指令中给出操作数主存地址信息主存地址信息(偏移地址,称之(偏移地址,称之为有效地址为有效地址EAEA););段地址段地址在默认的段寄存器或用段超越前缀指定的段在默认的段寄存器或用段超越前缀指定的段寄存器中。寄存器中。11二、寻址方式二、寻址方式2.3 2.3 存储器寻址方式存储器寻址方式 直接寻址直接寻址有效地址有效地址在指令中直接给出,存放在在指令中直接给出,存放在代码段指令操作码后面的操作数字段。代码段指令操作码后面的操作数字段。段地址段地址在默认的在默认的DSDS段寄存器或用段超段寄存器或用段超越前缀指定的段寄存器中。越前缀指定的段寄存器中。OP地址低地址低8位位地址高地址高8位位操作码操作码物理地址:物理地址:DS*16+EADS*16+EAEAEA有有效地效地址址例例:设设AX=1212HAX=1212H,BUFBUF为为数数据据段段定定义义的的变变量量且且 BUF=2000H(BUF=2000H(表表示示地地址址),DS=3000HDS=3000H,(32000H32000H)=4546H=4546H。执执行指令:行指令:MOV MOV AX AX,BUF BUF ;执执行行后后AX=?AX=?DS*16+BUF=3000H*16+2000H=32000H(32000H)=46H(32001H)=45H执执行行:(32000H)AX执执 行行 后后:AX=4546H12二、寻址方式二、寻址方式2.3 2.3 存储器寻址方式存储器寻址方式 直接寻址直接寻址例:例:设设ES=4000HES=4000H,执行指令:执行指令:MOV ALMOV AL,ES:2000H ES:2000H;执行后执行后AL=AL=?ES*16+2000HES*16+2000H=4000H*16+2000H=4000H*16+2000H=42000H=42000H(42000H42000H)的内容送)的内容送ALAL执行后执行后:AL=56H:AL=56H13二、寻址方式二、寻址方式2.3 2.3 存储器寻址方式存储器寻址方式 寄存器寄存器间间接接寻址寻址F操操作作数数的的有有效效地地址址EAEA在在基基址址寄寄存存器器BXBX、BPBP或或变变址址寄寄存存器器SISI、DIDI中中(EA=SI(EA=SI、DIDI、BXBX、BP),BP),而而操操作作数数在在存存储储器器中;中;F默默认认段段基基址址在在DS(DS(或或SS)SS)段段寄寄存存器器,可可用用段段超超越越前前缀缀改改变;变;间址寄存器间址寄存器或或地址指针地址指针DSDS:BXBXDSDS:SISIDSDS:DIDISSSS:BPBP=DS*16+BX=DS*16+BX=DS*16+SI=DS*16+SI=DS*16+DI=DS*16+DI=SSSS*16+BP*16+BP物物理理地地址址逻逻辑辑地地址址14二、寻址方式二、寻址方式2.3 2.3 存储器寻址方式存储器寻址方式 寄存器寄存器间间接接寻址寻址例例:设设DS=4000HDS=4000H,BX=100HBX=100H,执执行行指指令令:MOV AXMOV AX,BX BX;AX=AX=?DS*16+BXDS*16+BX=4000H*16+0100H=4000H*16+0100H=40100H=40100H(40100H40100H)内容送)内容送ALAL(40101H40101H)内容送)内容送AHAH执行后执行后AX=3425HAX=3425H例:例:MOV BX,1000H MOV BX,1000H;偏移量;偏移量1000H1000H送入送入BXBX MOV EAX,BX MOV EAX,BX;DSDS段偏移量为段偏移量为1000H1000H、1001H1001H、;1002H1002H和和1003H1003H单元的内容送单元的内容送EAXEAX15二、寻址方式二、寻址方式2.3 2.3 存储器寻址方式存储器寻址方式 寄存器寄存器间间接接寻址寻址执行指令:执行指令:MOV AX MOV AX,BP BP 执行后:执行后:AX=?AX=?,BP=?BP=?,SS=?SS=?,(,(20030H20030H)对应字节单元)对应字节单元=?=?例:例:设设AX=0AX=0,BP=0030HBP=0030H,SS=2000HSS=2000H,(,(20030H20030H)=1234H=1234HSS*16+BPSS*16+BP=2000H*16+0030H=2000H*16+0030H=20030H=20030H(20030H20030H)内容送)内容送ALAL(20031H20031H)内容送)内容送AHAH执行后执行后AX=1234H AX=1234H BP=0030H BP=0030H SS=2000H SS=2000H (20030H)=34H(20030H)=34H16二、寻址方式二、寻址方式2.3 2.3 存储器寻址方式存储器寻址方式 寄存器寄存器相对相对寻址寻址操作数有效地址是寄存器(操作数有效地址是寄存器(BXBX、BPBP、SISI、DIDI)内容与)内容与有符号有符号8 8位或位或1616位位移量之和,而操作数在存储器中;位位移量之和,而操作数在存储器中;有效地址有效地址BX/BP/SI/DIBX/BP/SI/DI8/168/16位位位移量位移量默认段基址在默认段基址在DS(DS(或或SS)SS)段寄存器,可使用段超越前缀段寄存器,可使用段超越前缀改变;改变;物理地址物理地址=DS*16+BX+8/16=DS*16+BX+8/16位位移量位位移量=DS*16+SI+8/16=DS*16+SI+8/16位位移量位位移量=DS*16+DI+8/16=DS*16+DI+8/16位位移量位位移量=SSSS*16+BP+8/16*16+BP+8/16位位移量位位移量DSDS:BX+8/16BX+8/16位位移量位位移量DSDS:SI+8/16SI+8/16位位移量位位移量DSDS:DI+8/16DI+8/16位位移量位位移量SSSS:BP+8/16BP+8/16位位移量位位移量逻逻辑辑地地址址17二、寻址方式二、寻址方式2.3 2.3 存储器寻址方式存储器寻址方式 寄存器寄存器相对相对寻址寻址例:例:设设DS=6000HDS=6000H,BX=2000HBX=2000H,执行指令:执行指令:MOV ALMOV AL,BX+5BX+5;执行后执行后AL=AL=?DS*16+BX+5=6000H*16+DS*16+BX+5=6000H*16+2000H+05H=62005H2000H+05H=62005H(62005H62005H)内容送)内容送AL AHAL AH的内容不变的内容不变执行后执行后AL=9AHAL=9AH例:例:MOV EAXMOV EAX,5EBP5EBP;将;将SS*10H+EBP+5SS*10H+EBP+5开始连开始连 ;续四个单元内容送;续四个单元内容送EAXEAX寄存器相对寻址常用于寄存器相对寻址常用于一维数据结构一维数据结构或表格中某存储单元或表格中某存储单元的寻址。的寻址。18二、寻址方式二、寻址方式2.3 2.3 存储器寻址方式存储器寻址方式 基址变址基址变址寻址寻址=DS*16+BX+SI=DS*16+BX+DI=SS*16+BP+SI=SS*16+BP+DI有效地址由有效地址由基址寄存器(基址寄存器(BXBX或或BPBP)内容加上内容加上变址寄存器变址寄存器(SISI或或DIDI)的内容构成的内容构成 ,而操作数在存储器中;,而操作数在存储器中;有效地址有效地址BX/BP+SI/DIBX/BP+SI/DI 默认段基址是默认段基址是DSDS,BPBP时默认段基址是时默认段基址是SSSS,可使用段超越前,可使用段超越前缀改变;缀改变;DS:BX+SIDS:BX+DISS:BP+SISS:BP+DI逻逻辑辑地地址址基址值基址值变址值变址值段首址段首址操作数操作数指指令令EAEAPAPA左移左移4 4位位BRBRIRIR物物理理地地址址19二、寻址方式二、寻址方式2.3 2.3 存储器寻址方式存储器寻址方式 基址变址基址变址寻址寻址例:例:设设DS=5000HDS=5000H,BX=2000HBX=2000H,SI=0006HSI=0006H;执行指令:执行指令:MOV AXMOV AX,BX+SIBX+SI;DS*16+BX+SIDS*16+BX+SI=5000H*16+2000H+000=5000H*16+2000H+0006H6H=52006H=52006H(52006H52006H)内容送)内容送ALAL(52007H52007H)内容送)内容送AHAH执行后执行后AX=AB78HAX=AB78H例:例:MOV EAX,EBPEDI MOV EAX,EBPEDI;将;将SS*10H+EBP+EDISS*10H+EBP+EDI开始开始 ;连续四个单元内容送;连续四个单元内容送EAXEAX寄存器寄存器20二、寻址方式二、寻址方式2.3 2.3 存储器寻址方式存储器寻址方式 基址变址基址变址相对相对寻址寻址=DS*16+BX+SI+8/16=DS*16+BX+SI+8/16位位移量位位移量=DS*16+BX+DI+8/16=DS*16+BX+DI+8/16位位移量位位移量 =SSSS*16+BP+SI+8/16*16+BP+SI+8/16位位移量位位移量 =SSSS*16+BP+DI+8/16*16+BP+DI+8/16位位移量位位移量 操作数有效地址是基址寄存器(操作数有效地址是基址寄存器(BX/BPBX/BP)、变址寄存器)、变址寄存器(SI/DISI/DI)与一个)与一个8 8位或位或1616位位移量之和,而操作数在存储器中;位位移量之和,而操作数在存储器中;有效地址有效地址BX/BP+SI/DI+8/16BX/BP+SI/DI+8/16位位位移量位移量 默认段基址是默认段基址是DSDS,BPBP时默认段基址是时默认段基址是SSSS,可使用段超越前,可使用段超越前缀改变;缀改变;DSDS:BX+SI+8/16BX+SI+8/16位位移量位位移量DSDS:BX+DI+8/16BX+DI+8/16位位移量位位移量SSSS:BP+SI+8/16BP+SI+8/16位位移量位位移量SSSS:BP+DI+8/16BP+DI+8/16位位移量位位移量逻逻辑辑地地址址物物理理地地址址21二、寻址方式二、寻址方式2.3 2.3 存储器寻址方式存储器寻址方式 基址变址基址变址相对相对寻址寻址例例:设设DS=4000H,DS=4000H,BX=0200H,DI=0010HBX=0200H,DI=0010H。执执行行指指令令;MOV MOV AHAH,BX+DI+1234HBX+DI+1234HDS*16+BX+DI+1234HDS*16+BX+DI+1234H=4000H*16+0200H+0010H+1234H=4000H*16+0200H+0010H+1234H=41444H=41444H(41444H)(41444H)内容送内容送AHAH执行后执行后AH=50HAH=50H例:例:MOV EDX,EBP+0FFFF000HEDIMOV EDX,EBP+0FFFF000HEDI ;将;将SS*10H+EBP+FFFF000H+EDISS*10H+EBP+FFFF000H+EDI开始连续四个单开始连续四个单 ;元内容送元内容送EDXEDX,或,或MOV EDX,EBP+EDI+0FFFF000HMOV EDX,EBP+EDI+0FFFF000H基址变址相对寻址常用于基址变址相对寻址常用于二维数组中某存储单元二维数组中某存储单元的寻址。的寻址。22二、寻址方式二、寻址方式在寄存器相对或相对基址变址寻址方式中,在寄存器相对或相对基址变址寻址方式中,位移量可用位移量可用符号符号表示:表示:例:例:MOV AX,SI+COUNTMOV AX,SI+COUNT ;COUNTCOUNT是事先定义的变量或常量(数值)是事先定义的变量或常量(数值)例:例:MOV AX,BX+SI+WNUM MOV AX,BX+SI+WNUM;WNUMWNUM也是变量或常量也是变量或常量F 与数据有关的寻址方式共有七种;与数据有关的寻址方式共有七种;F同一寻址方式可以写成不同的形式:同一寻址方式可以写成不同的形式:例:例:MOV AX,BXSIMOV AX,BXSI;等同;等同 MOV AX,BX+SIMOV AX,BX+SI例:例:MOV AX,COUNTSIMOV AX,COUNTSI;等同;等同 MOV AX,SI+COUNTMOV AX,SI+COUNT例:例:MOV AX,WNUMBXSIMOV AX,WNUMBXSI;等同;等同 MOV AX,WNUMBX+SIMOV AX,WNUMBX+SI ;等同;等同 MOV MOV AX,BX+SI+WNUMAX,BX+SI+WNUM23二、寻址方式二、寻址方式2.4 I/O2.4 I/O端口寻址方式端口寻址方式 直接直接寻址寻址在输入输出指令中直接写上在输入输出指令中直接写上8 8位位I/OI/O端口地址号。端口地址号。例:例:IN AL,50H IN AL,50H;50H50H端口的字节读入端口的字节读入ALAL例:例:OUT 80H,AXOUT 80H,AX ;AXAX中的内容输出到中的内容输出到80H80H、81H81H两个端口两个端口例:例:IN EAXIN EAX,60H60H ;60H60H、61H61H、62H62H和和63H63H端口的端口的4 4个字节个字节 ;由低到高依次输入到;由低到高依次输入到EAXEAX中。中。24二、寻址方式二、寻址方式2.4 I/O2.4 I/O端口寻址方式端口寻址方式1616位位I/OI/O端口地址号存入端口地址号存入DXDX,在输入输出指令中写,在输入输出指令中写DXDX,表,表示从其指示的示从其指示的I/OI/O端口中输入输出数据。端口中输入输出数据。例:例:MOV DX,FF02H MOV DX,FF02H OUT DX,AL OUT DX,AL ;ALAL中的字节输出到中的字节输出到DXDX所指端口中所指端口中例:例:MOV DX,0050HMOV DX,0050H IN AX,DX IN AX,DX;从;从DXDX和和DX+1DX+1所指的所指的2 2个端口输入个端口输入1 1个字个字例:例:MOV DX,FFO6HMOV DX,FFO6H OUT DX OUT DX,EAX EAX;EAXEAX的双字由低到高依次输出到的双字由低到高依次输出到DXDX、;DX+1DX+1、DX+2DX+2和和DX+3DX+3所指的所指的4 4个端口中个端口中寄存器间接寻址寄存器间接寻址25立即数寻址的功能26立即数寻址的执行27寄存器寻址的功能28寄存器寻址的执行29直接寻址的功能30直接寻址的执行31寄存器间接寻址的功能32寄存器间接寻址的执行33寄存器相对寻址的功能34寄存器相对寻址的执行35基址变址寻址的功能36基址变址寻址的执行37相对基址变址寻址的功能38相对基址变址寻址的执行39IN AL,21H40OUT 43H,AL第三讲第三讲 指令系统指令系统内容提要:内容提要:一、指令概述一、指令概述二、寻址方式二、寻址方式三、指令系统三、指令系统数据传送类指令数据传送类指令算术运算指令算术运算指令逻辑运算指令逻辑运算指令串操作指令串操作指令控制转移指令控制转移指令处理器控制指令处理器控制指令 42三、指令系统三、指令系统3.1 3.1 数据传送指令数据传送指令传送指令:将数据从一个位置传送到另一个位置;传送指令:将数据从一个位置传送到另一个位置;按功能可分为五种(掌握):按功能可分为五种(掌握):通用数据传送指令:通用数据传送指令:MOVMOV交换指令:交换指令:XCHGXCHG、XLATXLAT 地址传送指令:地址传送指令:LEALEA、LDSLDS堆栈操作指令堆栈操作指令:PUSHPUSH、POPPOP 输入输入/输出指令:输出指令:ININ、OUTOUT除除标志寄存器标志寄存器传送指令外,均传送指令外,均不影响标志不影响标志位。位。1 1)通用数据传送指令:)通用数据传送指令:MOVMOV指令格式:指令格式:MOV OP1,OP2 MOV OP1,OP2 ;字节、字、双字间传送;字节、字、双字间传送功功能能:将将源源操操作作数数OP2OP2内内容容传传送送(复复制制)到到目目标标操操作作数数OP1OP1中。常用于对寄存器、存储器赋值,数据暂存等。中。常用于对寄存器、存储器赋值,数据暂存等。43三、指令系统三、指令系统3.1 3.1 数据传送指令数据传送指令具体指令格式有:具体指令格式有:MOV reg/sreg,regMOV reg/sreg,regMOV reg,sregMOV reg,sregMOV reg/sreg,memMOV reg/sreg,memMOV mem,reg/sregMOV mem,reg/sregMOV reg,immMOV reg,immMOV mem,imm MOV mem,imm 其中(以后同):其中(以后同):regreg:寄存器;:寄存器;memmem:存储器;:存储器;segseg:段寄存器;:段寄存器;immimm:立即数。:立即数。例例3.13.1:立即数传送:立即数传送mov al,4mov al,4;al4al4,字节传送,字节传送mov cx,0ffhmov cx,0ffh;cx00ffhcx00ffh,字传送,字传送mov si,200hmov si,200h;si0200hsi0200h,字传送,字传送mov eax,001000ffh mov eax,001000ffh ;eax001000ffheax001000ffh,双字传送,双字传送44三、指令系统三、指令系统3.1 3.1 数据传送指令数据传送指令例例3.23.2:寄存器传送:寄存器传送mov ax,bx mov ax,bx ;axbxaxbx,字传送,字传送mov ah,al mov ah,al ;ahalahal,字节传送,字节传送mov ds,ax mov ds,ax ;dsaxdsax,字传送,字传送mov si,al mov si,al ;sialsial,字节传送,字节传送例例3.33.3:存储器传送:存储器传送mov al,bx mov al,bx ;alds:bxalds:bxmov dx,bp mov dx,bp ;dxss:bpdxss:bpmov es,si mov es,si ;esds:siesds:si例例3.43.4:段寄存器传送:段寄存器传送mov si,dsmov si,dsmov ax,es mov ax,es ;axesaxesmov ds,ax mov ds,ax ;dsaxesdsaxes45三、指令系统三、指令系统3.1 3.1 数据传送指令数据传送指令nMOVMOV传送的原则传送的原则通用寄存器通用寄存器AX BX CX DXAX BX CX DXBP SP SI DIBP SP SI DI立即数立即数存存储储器器段寄存器段寄存器DS ES SSDS ES SS目的操作数不能是目的操作数不能是CSCS、IPIP、立即数:、立即数:如:如:MOV CS,SIMOV CS,SI;不;不允许使用。允许使用。源操作数和目的操作源操作数和目的操作数的类型必须一致:数的类型必须一致:同为字节、字、双字。同为字节、字、双字。46三、指令系统三、指令系统3.1 3.1 数据传送指令数据传送指令2 2)交换指令:)交换指令:XCHGXCHG、XLATXLAT 交换指令格式:交换指令格式:XCHGXCHG OP1OP1,OP2OP2 ;OP1OP1 OP2OP2功能:功能:把把同长度的同长度的源和目的操作数内容进行互换源和目的操作数内容进行互换通用寄存器之间互换数据;通用寄存器之间互换数据;通用寄存器与存储器之间互换数据;通用寄存器与存储器之间互换数据;两操作数不能同为存储器操作数;两操作数不能同为存储器操作数;两操作数中不允许有立即数;两操作数中不允许有立即数;两操作数中不允许有段寄存器。两操作数中不允许有段寄存器。例例3.53.5:寄存器间交换:寄存器间交换mov ax,1234hmov ax,1234hmov bx,5678hmov bx,5678hxchg ax,bxxchg ax,bxxchg ah,alxchg ah,al例例3.63.6:寄存器与存储器交换:寄存器与存储器交换xchg ax,2000hxchg ax,2000h;字交换,同;字交换,同xchg 2000h,axxchg 2000h,axxchg al,2000hxchg al,2000h;字节交换,同;字节交换,同xchg 2000h,alxchg 2000h,al47三、指令系统三、指令系统3.1 3.1 数据传送指令数据传送指令指令格式:指令格式:XLATXLAT ;alds:bx+alalds:bx+al功能:功能:从从BXBX指定的存储区首地址,指定的存储区首地址,ALAL为位移量的内存单元为位移量的内存单元取一个字节数据送取一个字节数据送ALAL,操作数全部为隐含。,操作数全部为隐含。换码指令执行前:换码指令执行前:在主存建立一个字节表格,在主存建立一个字节表格,内含要转换成的目标代码;内含要转换成的目标代码;表格首地址存放于表格首地址存放于BXBX,ALAL存存放相对表格首地址的位移量。放相对表格首地址的位移量。换码指令执行后:换码指令执行后:将将ALAL寄存器寄存器的内容转换为的内容转换为目标代码目标代码。如:已知数字字符如:已知数字字符0-90-9的的ASCIIASCII码表,求码表,求3 3的编的编码码30h31h32h33h34h35h36h37h38h39h0123456789字符字符BX=100Hmov bx,100hmov al,03hxlat48三、指令系统三、指令系统3.1 3.1 数据传送指令数据传送指令3 3)地址传送指令:)地址传送指令:LEALEA、LDSLDS指令格式:指令格式:LEA reg16/reg32,memLEA reg16/reg32,mem指令功能:指令功能:将存储器操作数将存储器操作数memmem的的有效地址有效地址传送至指定的传送至指定的 16/3216/32位寄存器位寄存器(不包括段寄存器不包括段寄存器)中。中。mov bx,0400hmov bx,0400hmov si,3chmov si,3chlea bx,bx+si+0f62hlea bx,bx+si+0f62h;bxbx0400h+003ch+0f62h0400h+003ch+0f62h139EH139EHLEA ESI,EBX+5LEA ESI,EBX+5;格式:格式:LDS reg16,mem LDS reg16,mem 功能:功能:将主存中将主存中memmem指定的指定的字字送送reg16reg16,memmem的下一字送的下一字送DSDS格式格式:LES reg16,memLES reg16,mem功能功能:将主存中:将主存中memmem指定的字送指定的字送reg16reg16,memmem的下一字送的下一字送ESES指定指定memmem连续连续4 4个字节作为逻辑地址,送入个字节作为逻辑地址,送入DS:reg16DS:reg16或或ES:reg16ES:reg1649三、指令系统三、指令系统3.1 3.1 数据传送指令数据传送指令例:地址指针传送例:地址指针传送MOV WORD PTR 3060HMOV WORD PTR 3060H,0100H0100HMOV WORD PTR 3062HMOV WORD PTR 3062H,1450H1450HLES DILES DI,3060H 3060H ;ES=1450HES=1450H,DI=0100HDI=0100HLDS SILDS SI,3060H 3060H ;DS=1450HDS=1450H,SI=0100HSI=0100H例:例:LDS BXLDS BX,ADDRSI ADDRSI 设设DS=1000HDS=1000H,ADDR=10HADDR=10H,SI=100HSI=100H10110H10110H10111H10111H10112H10112H10113H10113H10H10H20H20H30H30H40H40H2010H2010H4030H4030HBXBXDSDS若将此指令改为若将此指令改为LES DILES DI,ADDRSIADDRSI则则DI=DI=?,?,ES=ES=?50三、指令系统三、指令系统3.1 3.1 数据传送指令数据传送指令4 4)堆栈操作指令)堆栈操作指令:PUSHPUSH、POPPOP 堆栈是一个堆栈是一个“后进先出后进先出LIFOLIFO”(或说(或说“先进后出先进后出FILOFILO”)的主存区域,位于堆)的主存区域,位于堆栈段中;由栈段中;由SSSS段寄存器记录其段寄存器记录其段基地址;段基地址;堆栈只有一个出口,即当前堆栈只有一个出口,即当前栈顶;用栈顶;用堆栈指针寄存器堆栈指针寄存器SPSP指定;指定;栈顶是地址较小的一端(低栈顶是地址较小的一端(低端),栈底不变。端),栈底不变。1234SP3000HSP2FFEH2FFFH3412有两种操作有两种操作:压栈压栈和和出栈出栈,分别对应分别对应PUSHPUSH和和POPPOP指令,指令,以字或双字作为操作对象的长度以字或双字作为操作对象的长度;51三、指令系统三、指令系统3.1 3.1 数据传送指令数据传送指令PUSHPUSH功能:功能:先使堆栈指针先使堆栈指针SPSP减减2/42/4,然后把一个,然后把一个16/3216/32位位操作数存入堆栈顶部。操作数存入堆栈顶部。OP2OP2是是16/3216/32位立即数、通用寄存位立即数、通用寄存器、段寄存器、存储器。器、段寄存器、存储器。POP POP 功能:功能:把栈顶的一个字把栈顶的一个字/双字传送至指定的目的操双字传送至指定的目的操作数,然后堆栈指针作数,然后堆栈指针SPSP加加2/42/4。OP1OP1是是16/3216/32位的通用寄位的通用寄存器、段寄存器(存器、段寄存器(CSCS除外)、存储器。除外)、存储器。压栈指令格式:压栈指令格式:PUSH OP2 PUSH OP2 ;OP2OP2为源操作数为源操作数出栈指令格式:出栈指令格式:POPPOP OP1 OP1 ;OP1OP1为目的操作数为目的操作数 52三、指令系统三、指令系统3.1 3.1 数据传送指令数据传送指令例:例:push axpush ax push 2000h push 2000h push ax push ax执行后执行后 SP=01FEHSP=01FEH;执行执行push 2000hpush 2000h:DS*16+2001HDS*16+2001H的内容送的内容送SS*16+01FDHSS*16+01FDH单元;单元;DS*16+2000HDS*16+2000H的内容送的内容送SS*16+01FCHSS*16+01FCH单元;单元;53三、指令系统三、指令系统3.1 3.1 数据传送指令数据传送指令例:例:POP DXPOP DX POP 2000H POP 2000H执行后:执行后:DX=DX=?SP=SP=?54三、指令系统三、指令系统3.1 3.1 数据传送
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服