版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院第第3章章 80 x86指令系统和寻址方式指令系统和寻址方式教学要求:教学要求:1. 掌握指令系统的根本概念:指令格式、寻址方掌握指令系统的根本概念:指令格式、寻址方式、指令类型;掌握式、指令类型;掌握8086/8088指令系统中,各指指令系统中,各指令的格式、功能和本卷须知。令的格式、功能和本卷须知。2. 了解其他的寻址方式和指令类型。了解其他的寻址方式和指令类型。 IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院 相关概念相关概念一、什么是指令系统?一、什么是指令系统
2、? 计算机的指令系统就是指该计算机可以执行的计算机的指令系统就是指该计算机可以执行的全部指令的集合。全部指令的集合。 每种计算机都有它支持的指令集合。每种计算机都有它支持的指令集合。 16位位8086指令系统是整个指令系统是整个Intel 80 x86 系列微处系列微处置器指令系统的根底。置器指令系统的根底。IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院操作码操作码操作数操作数 操作数操作数IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院三、学习指令的本卷须知三、学习指令的本卷须知 指令的功能指令的功能该指令可以实现
3、何种操作。通常指令助记该指令可以实现何种操作。通常指令助记符就是指令功能的英文单词或其缩写方式。符就是指令功能的英文单词或其缩写方式。 指令支持的寻址方式指令支持的寻址方式该指令中的操作数可以采用何种该指令中的操作数可以采用何种寻址方式。寻址方式。 指令对标志的影响指令对标志的影响该指令执行后能否对各个标志位有该指令执行后能否对各个标志位有影响,以及如何影响。影响,以及如何影响。 其他方面其他方面该指令其他需求特别留意的地方,如指令执该指令其他需求特别留意的地方,如指令执行时的商定设置、必需预置的参数、隐含运用的存放器等。行时的商定设置、必需预置的参数、隐含运用的存放器等。IBM-PC汇编语言
4、程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院3.1 80 x86寻址方式寻址方式寻址、寻址方式的概念寻址、寻址方式的概念 指令中操作数字段本质上是指出操作数存放于何处。普指令中操作数字段本质上是指出操作数存放于何处。普通来说,操作数可以跟随在指令操作码之后,称为立刻数;通来说,操作数可以跟随在指令操作码之后,称为立刻数;操作数也可以存放在操作数也可以存放在CPU内部的存放器中,称为存放器操作内部的存放器中,称为存放器操作数。绝大多数的操作数存放在内存储器中,称为存储器操作数。绝大多数的操作数存放在内存储器中,称为存储器操作数。指令指定操作数的位置,即给出地址信息,在执行时
5、需数。指令指定操作数的位置,即给出地址信息,在执行时需求根据这个地址信息找到需求的操作数。这种寻觅操作数的求根据这个地址信息找到需求的操作数。这种寻觅操作数的过程称为寻址,而寻觅操作数的方法称为寻址方式。过程称为寻址,而寻觅操作数的方法称为寻址方式。IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院指令的助记符格式:指令的助记符格式: 指令助忆符指令助忆符 操作数操作数1 , 操作数操作数2 , 操作数操作数3 ;注释注释 指令助忆符表达该指令的功能,它对应一条二进制编码的机器指令助忆符表达该指令的功能,它对应一条二进制编码的机器指令。指令的操作数个数由该指
6、令确定,可以没有操作数,也可以指令。指令的操作数个数由该指令确定,可以没有操作数,也可以有一个、二个或三个操作数。绝大多数指令的操作数要显式的写出有一个、二个或三个操作数。绝大多数指令的操作数要显式的写出来,但也有指令的操作数是隐含的,不需求在指令中写出。来,但也有指令的操作数是隐含的,不需求在指令中写出。注:当指令含有操作数,那么在书写时必需遵守:注:当指令含有操作数,那么在书写时必需遵守: 指令助记符和操作数之间要有分隔符,分隔符可以是假设干个空格指令助记符和操作数之间要有分隔符,分隔符可以是假设干个空格或或TAB键;键; 假设指令含有多个操作数,那么,操作数之间要用逗号假设指令含有多个操
7、作数,那么,操作数之间要用逗号,分开分开。 指令后面还可以书写注释内容,不过,要在注释之前书写分号指令后面还可以书写注释内容,不过,要在注释之前书写分号“;。 IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院3.1.1 与数据有关的寻址方式与数据有关的寻址方式以以 MOV 指令为例:指令为例:立刻寻址立刻寻址 MOV AX , 3069H存放器寻址存放器寻址 MOV AL , BH直接寻址直接寻址 MOV AX , 2000H 存放器间接寻址存放器间接寻址 MOV AX , BX 存放器相对寻址存放器相对寻址 MOV AX , COUNT SI 基址变址寻
8、址基址变址寻址 MOV AX , BP DI 相对基址变址寻址相对基址变址寻址 MOV AX , MASK BX SI IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院1. 立刻寻址方式立刻寻址方式 定义:操作数作为指令的一部分而直接写在指令中,这种操作定义:操作数作为指令的一部分而直接写在指令中,这种操作数称为立刻数,这种寻址方式也就称为立刻数寻址方式。数称为立刻数,这种寻址方式也就称为立刻数寻址方式。 汇编格式:汇编格式:nn为立刻操作数,是用为立刻操作数,是用8位或位或16位二进制补码表示位二进制补码表示的有符号数的有符号数功能:操作数存放在存储器,
9、指令下一单元的内容为立刻操作数功能:操作数存放在存储器,指令下一单元的内容为立刻操作数n。图形表示:图形表示:操作数操作数 n指令指令IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院【例【例3.1】MOV AX, 4576H 执行后执行后AX=? 该例中源操作数为立刻寻址方式,立刻数为该例中源操作数为立刻寻址方式,立刻数为4576H,存放,存放在指令的下一单元。在指令的下一单元。 执行:执行:4576HAX 执行后:执行后:AX=4576H 76HOP45H DSMOV AX,4576H指令的存储方式指令的存储方式45 76 AXIBM-PC汇编语言程序设
10、计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院2. 存放器寻址方式存放器寻址方式定义:指令所要的操作数已存储在某存放器中,或把目的定义:指令所要的操作数已存储在某存放器中,或把目的操作数存入存放器。把在指令中指出所运用存放器即:操作数存入存放器。把在指令中指出所运用存放器即:存放器的助记符的寻址方式称为存放器寻址方式。存放器的助记符的寻址方式称为存放器寻址方式。 汇编格式:汇编格式:R 其中其中R表示存放器名。表示存放器名。功能:操作数直接存放在存放器功能:操作数直接存放在存放器R中。中。图形表示:图形表示:存放器存放器 R指令指令操作数操作数存放器存放器IBM-PC汇编语言程序
11、设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院指令中可以援用的存放器及其符号称号如下:指令中可以援用的存放器及其符号称号如下: 8位存放器有:位存放器有:AH、AL、BH、BL、CH、CL、DH和和DL等;等; 16位存放器:位存放器:AX、BX、CX、DX、SI、DI、SP、BP和段和段存放器等;存放器等; 源操作数是存放器寻址方式源操作数是存放器寻址方式 如:如:ADD VARW, AXMOV VARB, BH等。等。 其中:其中:VARW和和VARB是字和字节类型的内存变量。是字和字节类型的内存变量。目的操作数是存放器寻址方式目的操作数是存放器寻址方式 如:如:ADD B
12、H, 78hADD AX, 1234h源和目的操作数都是存放器寻址方式源和目的操作数都是存放器寻址方式 如:如: MOV AX, BX MOV DH, BL等。等。IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院注:由于指令所需的操作数已存储在存放器中,或注:由于指令所需的操作数已存储在存放器中,或操作的结果存入存放器,这样,在指令执行过程中,操作的结果存入存放器,这样,在指令执行过程中,会减少读会减少读/写存储器单元的次数,所以,运用存放器写存储器单元的次数,所以,运用存放器寻址方式的指令具有较快的执行速度。通常情况下,寻址方式的指令具有较快的执行速度。
13、通常情况下,提倡在编写汇编言语程序时,应尽能够地运用存放提倡在编写汇编言语程序时,应尽能够地运用存放器寻址方式,但也不要把它绝对化。器寻址方式,但也不要把它绝对化。IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院【例【例3.2】以下程序执行后,】以下程序执行后,AX=?,?,BX=? MOV AX,1234H MOV BX,5678H ADD AX,BX解释:该程序中解释:该程序中MOV指令为数据传送指令操作符,指令为数据传送指令操作符,ADD指指令为加法指令操作符,三条指令皆为双操作数指令。第一、令为加法指令操作符,三条指令皆为双操作数指令。第一、二条指
14、令二条指令AX、BX皆为目的操作数地址,为存放器寻址方式皆为目的操作数地址,为存放器寻址方式。第三条指令中,。第三条指令中,AX为目的操作数地址,为目的操作数地址,BX为源操作数地为源操作数地址。源地址和目的地址皆为存放器寻址方式。址。源地址和目的地址皆为存放器寻址方式。执行:执行:1234HAX 5678HBX AX+BXAX执行后:执行后:AX=68ACH,BX=5678HIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院3. 直接寻址方式直接寻址方式定义:指令所要的操作数存放在内存中,在指令中直接给定义:指令所要的操作数存放在内存中,在指令中直接给出该
15、操作数的有效地址,这种寻址方式为直接寻址方式。出该操作数的有效地址,这种寻址方式为直接寻址方式。 汇编格式:含有变量的地址表达式。汇编格式:含有变量的地址表达式。功能:指令下一字单元的内容是操作数的偏移地址功能:指令下一字单元的内容是操作数的偏移地址EAEA。图形表示:图形表示:EA指令指令操作数操作数存储器存储器段基地址段基地址IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院【例【例3.3】执行指令:】执行指令:MOV BX ,1234H 设设DS=2000H。执行后:执行后:AX=?图示:图示:执行:执行:21234HBX执行后:执行后:BX=5312
16、HIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院 在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段存放器存放器DSDS和指令中给出的有效地址直接构成,但假设运用段超越前缀,那么和指令中给出的有效地址直接构成,但假设运用段超越前缀,那么,操作数可存放在其它段。,操作数可存放在其它段。 例如:例如:MOVMOVES:1000HES:1000H, AX AX 留意:立刻寻址方式和直接寻址方式的书写格式不同,直接寻址的地址要写留意:立刻寻址方式和直接寻址方式的书写格式不同,直接寻址的地址
17、要写在括号在括号“ ,“ 内。在程序中,直接地址通常用内存变量名来表示,如:内。在程序中,直接地址通常用内存变量名来表示,如:MOV BX, VARWMOV BX, VARW,其中,其中,VARWVARW是内存字变量。是内存字变量。 试比较以下指令中源操作数的寻址方式试比较以下指令中源操作数的寻址方式VARWVARW是内存字变量:是内存字变量: MOVAX, 1234H MOVAX, 1234H 前者是立刻寻址,后者是直接寻址前者是立刻寻址,后者是直接寻址 MOVAX, VARW MOVAX, VARW 两者是等效的,均为直接寻址两者是等效的,均为直接寻址 IBM-PC汇编语言程序设计汇编语言
18、程序设计 浙江财经学院信息学院浙江财经学院信息学院4. 存放器间接寻址方式存放器间接寻址方式定定 义:操作数在存储器中,操作数的有效地址用义:操作数在存储器中,操作数的有效地址用SISI、DIDI、BXBX和和BPBP等四个存放器之一来指定,称这种寻址方式为存放器等四个存放器之一来指定,称这种寻址方式为存放器间接寻址方式。间接寻址方式。 汇编格式:汇编格式:RR功功 能:操作数存放在存储器,存放器能:操作数存放在存储器,存放器R R存放操作数的偏存放操作数的偏移地址移地址EAEA。图形表示:图形表示:EA存放器存放器操作数操作数存储器存储器段基地址段基地址基址或变址存放器基址或变址存放器指令指
19、令IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院【例【例3.4】假设有指令:】假设有指令:MOV BX, DI,在执行时,在执行时,DS=1000H,DI=2345H,存储单元,存储单元12345H的内容是的内容是4354H。问。问执行指令后,执行指令后,BX的值是什么?的值是什么?解:存放器解:存放器DI的值不是操作数,而是操作数的地址。的值不是操作数,而是操作数的地址。该操作数的物理地址应由该操作数的物理地址应由DS和和DI的值构成,即:的值构成,即: PA=DS*16+DI=1000H*16+2345H=12345H。所以,该指令的执行效果是:所以
20、,该指令的执行效果是:把从物理地址为把从物理地址为12345H开场的开场的一个字的值传送给一个字的值传送给BX。 OP CS DS54H43H 10000H 12345H DS:1000HDI:2345H 12345H43 54 BXIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院在不运用段超越前缀的情况下,有以下规定:在不运用段超越前缀的情况下,有以下规定: 假设有效地址用假设有效地址用SI、DI和和BX等之一来指定,那么其缺省的段存等之一来指定,那么其缺省的段存放器为放器为DS;假设有效地址用假设有效地址用BP来指定,那么其缺省的段存放器为来指定,那么
21、其缺省的段存放器为SS即:即:堆栈段。堆栈段。该寻址方式物理地址的计算方法如下:该寻址方式物理地址的计算方法如下: BX 物理地址物理地址PA=16DS + SI DI或或 物理地址物理地址PA=16SS+ BPIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院5. 存放器相对寻址方式存放器相对寻址方式定定 义:操作数在存储器中,其有效地址是一个基址存放器义:操作数在存储器中,其有效地址是一个基址存放器BXBX、BPBP或变址存放器或变址存放器SISI、DIDI的内容和指令中的的内容和指令中的8 8位位/16/16位位偏移量之和。偏移量之和。 汇编格式:汇编
22、格式:XRXRX X表示位移量,是表示位移量,是8 8位或位或1616位二进制补码表示的位二进制补码表示的有符号数有符号数功功 能:操作数存放在存储器,存放器能:操作数存放在存储器,存放器R R的内容加位移量的内容加位移量X X为操为操作数的偏移地址作数的偏移地址EAEA。图形表示如下:图形表示如下:地址地址存放器存放器操作数操作数存储器存储器段基地址段基地址基址或变址存放器基址或变址存放器 位移量位移量指令指令EAIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院【例【例3.5】假设指令:】假设指令:MOV BX, SI+100H,在执行它时,在执行它时,
23、DS=1000H,SI=2345H,内存单元,内存单元12445H的内容为的内容为2715H,问该指,问该指令执行后,令执行后,BX的值是什么?的值是什么?解:解:EA=SI+100H=2345H+100H=2445H PA=DS*16+EA=1000H*16+2445H=12445H。所以,该指令的执行效果是:所以,该指令的执行效果是:把从物理地址为把从物理地址为12445H开场开场的一个字的值传送给的一个字的值传送给BX。OP CS DS15H27H 10000H 12445H SI:2345H 100H EA:2445H DS:1000H 12445H27 15 BXIBM-PC汇编语言
24、程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院6. 基址变址寻址方式基址变址寻址方式定定 义:操作数在存储器中,其有效地址是一个基址存放器义:操作数在存储器中,其有效地址是一个基址存放器BXBX、BPBP和一个变址存放器和一个变址存放器SISI、DIDI的内容之和。的内容之和。 汇编格式:汇编格式: BR+IRBR+IR功功 能:操作数存放在存储器,能:操作数存放在存储器,BRBR的内容加的内容加IRIR的内容是操作数的偏移地的内容是操作数的偏移地址址EAEA。图形表示:图形表示:操作数操作数 存储器存储器段基地址段基地址基址存放器基址存放器 变址存放器变址存放器指令指令基
25、址值基址值基址存放器基址存放器变址值变址值变址存放器变址存放器EAIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院【例【例3.6】假设指令:】假设指令:MOV BX, BX+SI,在执行时,在执行时,DS=1000H,BX=2100H,SI=0011H,内存单元,内存单元12111H的内容为的内容为1234H。问。问该指令执行后,该指令执行后,BX的值是什么?的值是什么? 解:操作数的物理地址解:操作数的物理地址PA为:为: PA=DS*16+ BX+SI =1000H*16+ 2100H+0011H =12111H所以,该指令的执行效果是:所以,该指令的
26、执行效果是:把从物理地址为把从物理地址为12111H开场开场的一个字的值传送给的一个字的值传送给BX。 OP CS DS34H12H 10000H 12111H BX:2100H SI:0011H EA:2111H DS:1000H 12111H12 34 BXIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院7. 相对基址变址寻址方式相对基址变址寻址方式定定 义:操作数在存储器中,其有效地址是一个基址存放器义:操作数在存储器中,其有效地址是一个基址存放器BXBX、BPBP的值、的值、一个变址存放器一个变址存放器SISI、DIDI的值和指令中的的值和指令中的
27、8 8位位/16/16位偏移量之和。位偏移量之和。 汇编格式:汇编格式:X BR+IRX BR+IR功功 能:操作数存放在存储器,能:操作数存放在存储器,BRBR内容加内容加IRIR内容加位移量内容加位移量X X是操作数的偏移是操作数的偏移地址地址EAEA。图形表示:图形表示:存储器存储器基址值基址值基址存放器基址存放器操作数操作数段基地址段基地址基址存放器基址存放器 变址存放器变址存放器 位移量位移量指令指令变址值变址值变址存放器变址存放器EAIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院【例【例3.7】假设指令:】假设指令:MOV AX, BX+SI
28、+200H,在执行时,在执行时,DS=1000H,BX=2100H,SI=0010H,内存单元,内存单元12310H的内容的内容为为1234H。问该指令执行后,。问该指令执行后,AX的值是什么?的值是什么? 解:该操作数的物理地址应由解:该操作数的物理地址应由DS和和EA的值构成,即:的值构成,即:PA=12310H所以,该指令的执行效果是:所以,该指令的执行效果是:把从物理地址为把从物理地址为12310H开场开场的一个字的值传送给的一个字的值传送给AX。 OP CS DS34H12H 10000H 12310H BX:2100H SI:0010H 0200H EA:2310H DS:1000
29、H 12310H12 34 AXIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院v跨段越问题跨段越问题 凡是运用存放器为凡是运用存放器为BX、SI、DI时,其默许段为时,其默许段为DS,运用,运用BP时,默许段时,默许段为为SS。该规定为系统默许形状。当要否认默许形状,到非商定段寻觅操作数。该规定为系统默许形状。当要否认默许形状,到非商定段寻觅操作数时,必需用跨段前缀指明操作数的段存放器名。时,必需用跨段前缀指明操作数的段存放器名。汇编格式:段存放器名:操作数地址。汇编格式:段存放器名:操作数地址。功能:冒号功能:冒号“:之前的段存放器名指明操作数所在的段
30、。:之前的段存放器名指明操作数所在的段。【例【例3.8】 MOV AX,DS:BP MOV CX,SS:SI 该例中,该例中,DS:,:,SS:均为跨段前缀,此时默许形状无效,操作数的物:均为跨段前缀,此时默许形状无效,操作数的物理地址理地址PA由段存放器内容左移由段存放器内容左移4位加偏移位加偏移EA构成。上述构成。上述2条指令的源操作数条指令的源操作数物理地址分别为:物理地址分别为: PA1 =DS左移左移4位位+BP PA2 =SS左移左移4位位+ SIIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院3.1.2 与转移地址有关的寻址方式与转移地址有关
31、的寻址方式 用来确定转移指令及转子用来确定转移指令及转子call指令的转向地址。转移指令的转向地址。转移地址是由各种寻址方式得到的有效地址和段地址相加而成的,地址是由各种寻址方式得到的有效地址和段地址相加而成的,有效地址存入有效地址存入IP存放器中,段地址指定为存放器中,段地址指定为CS段存放器内容。段存放器内容。 段内寻址段内寻址 段内直接寻址段内直接寻址 JMP NEAR PTR NEXT 段内间接寻址段内间接寻址 JMP TABLE BX 段间寻址段间寻址 段间直接寻址段间直接寻址 JMP FAR PTR NEXT 段间间接寻址段间间接寻址 JMP DWORD PTR BX IBM-PC
32、汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院1 段内直接寻址段内直接寻址转向的有效地址转向的有效地址 = 当前当前IP + 位移量位移量8bit/16bit) 位移量位移量IP存放器存放器EAIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院【例【例3.8】 1JMP SHORT QUEST 其中其中QUEST表示转移的符号地址,操作符表示转移的符号地址,操作符SHORT表示是个表示是个8位带符号数,位带符号数,数的范围是数的范围是80H 7FH,即,即 -128 +127。它只能相对于当前。它只能相对于当前IP转移指令的转移指
33、令的下一条指令的首地址所指的位置作下一条指令的首地址所指的位置作-128 +127范围内跳转,所以称为短跳范围内跳转,所以称为短跳转。转。2JMP NEAR PTR PROGA 其中其中PROGA表示转移的符号地址,操作符表示转移的符号地址,操作符NEAR PRT表示是个表示是个16位带符位带符号数,数的范围是号数,数的范围是8000H 7FFFH,即,即 -32768 +32767。它只能相对于当前。它只能相对于当前IP所指的位置作所指的位置作-32768 +32767范围内跳转,所以称为近跳转。范围内跳转,所以称为近跳转。 IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院
34、浙江财经学院信息学院2 段内间接寻址段内间接寻址 转向的有效地址是一个存放器或存储单元的内容。可用转向的有效地址是一个存放器或存储单元的内容。可用除立刻数以外的任何一种数据寻址方式得到,所得到的转向除立刻数以外的任何一种数据寻址方式得到,所得到的转向的有效地址取代的有效地址取代IP存放器的内容。存放器的内容。转向的有效地址转向的有效地址指令指令数据寻址方式数据寻址方式或或根据数据寻址根据数据寻址方式计算出方式计算出EA值值转向的有效地址转向的有效地址存储单元存储单元IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院 【例【例3.9】 知知 TABLE=20A
35、2H ,BX=1256H ,SI=528EH,DS=2000H ,232F8H= 3280H ,264E4H=2450H JMP BX ; IP=1256H JMP WORD PTR TABLEBX ; IP=3280H JMP WORD PTR BXSI ; IP=2450HIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院3 段间直接寻址段间直接寻址用指令中提供的转向段地址和偏移地址取代用指令中提供的转向段地址和偏移地址取代CS 和和 IP。指令指令偏移地址偏移地址IP存放器存放器段地址段地址CS存放器存放器IBM-PC汇编语言程序设计汇编语言程序设计
36、浙江财经学院信息学院浙江财经学院信息学院【例【例3.9】JMPFAR PTR NEXTROUNT32EA01001010CS=0000H CS0000002000 IPIP=2000H CSCS=1000HNEXTROUNTIP=0132H1013210000新新IP新新CSIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院4 段间间接寻址段间间接寻址用存储器中的两个相继字的内容取代用存储器中的两个相继字的内容取代CS 和和 IP,存储,存储单元的地址可用存储器寻址方式得到。单元的地址可用存储器寻址方式得到。 指令指令数据寻址方式数据寻址方式根据数据寻址根据
37、数据寻址方式计算出方式计算出EA值值转向的有效地址转向的有效地址转向的有效地址转向的有效地址存储器中的两个相继字存储器中的两个相继字IPCSIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院【例【例3.10】 JMPDWORD PTR INTERS+BX 如如DS=3000H,BX=1200H,INTERS=0020H, 那么存储单元的物理地址那么存储单元的物理地址PA=30000+0020+1200=31200H 指令执行前,指令执行前,CS=0000H,IP=1000H,31220H=40H, 31221=01H,31222H=00H,31223=10H
38、。 指令执行后,指令执行后,CS=1000H,IP=0140H,31220H=40H, 31221=01H,31222H=00H,31223=10H。IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院指令存储和执行情况:指令存储和执行情况:JMPDWORDPTRINTERBXCS=0000H CS0000001000 IPIP=1000H CSCS=1000H IPIP=0140H1014010000代码段代码段01400010DS=3000H DS3000031220INTER+BX数据段数据段新新IP新新CS312213122231223IBM-PC汇编
39、语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院3.2 程序占有的空间和执行时间程序占有的空间和执行时间IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院3. 80 x86的指令系统的指令系统80X86指令系统分为以下指令系统分为以下6组:组: 数据传送指令数据传送指令 串处置指令串处置指令 算术指令算术指令 控制转移指令控制转移指令 逻辑指令逻辑指令 处置机控制与杂项操作指令处置机控制与杂项操作指令 在学习汇编指令时,指令的功能是我们学习和掌握的重点,但要准确、有效地在学习汇编指令时,指令的功能是我们学习和掌握的重点,但要准确、有效地
40、运用这些指令,我们还要熟习系统对每条指令的一些规定或约束。因此,对指令运用这些指令,我们还要熟习系统对每条指令的一些规定或约束。因此,对指令要掌握以下几个方面内容:要掌握以下几个方面内容:指令操作数的寻址方式;指令操作数的寻址方式;指令对标志位的影响、标志位对指令的影响;指令对标志位的影响、标志位对指令的影响;指令的执行时间,对可完成同样功能的指令,要选用执行时间短的指令指令的执行时间,对可完成同样功能的指令,要选用执行时间短的指令 。IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院 数据传送指令担任把数据、地址或立刻数传送到存放器、存储器或数据传送指令担
41、任把数据、地址或立刻数传送到存放器、存储器或端口号存放器。它相对于高级言语里的赋值语句。端口号存放器。它相对于高级言语里的赋值语句。 通用数据传送:通用数据传送:MOV PUSH POP 累加器公用传送输入输出:累加器公用传送输入输出: IN OUT XLAT地址传送:地址传送: LEA LDS LES标志存放器传送:标志存放器传送: LAHF SAHF PUSHF POPF类型转换指令:类型转换指令:CBW CWDIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院vMOV 传送指令传送指令格格 式:式: MOV Reg/Mem, Reg/Mem/Imm 其
42、中:其中:RegRegister存放器,存放器,MemMemory存储器,存储器,ImmImmediate立刻数,它们可以是立刻数,它们可以是8位、位、16位。位。 功功 能:指令的功能是把源操作数第二操作数的值传给目能:指令的功能是把源操作数第二操作数的值传给目的操作数第一操作数。指令执行后,目的操作数的值被改动,的操作数第一操作数。指令执行后,目的操作数的值被改动,而源操作数的值不变。在存储单元是该指令的一个操作数时,该而源操作数的值不变。在存储单元是该指令的一个操作数时,该操作数的寻址方式可以是恣意一种存储单元寻址方式。操作数的寻址方式可以是恣意一种存储单元寻址方式。IBM-PC汇编语言
43、程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院段存放器段存放器CS、DS、SS、ES通用存放器通用存放器8位或者位或者16位位存储器存储器立刻数立刻数8位或者位或者16位位 在汇编言语中,主要的数据传送方式如以下图所示。虽然一条在汇编言语中,主要的数据传送方式如以下图所示。虽然一条MOV指令能实现其中大多数的数据传送方式,但也存在指令能实现其中大多数的数据传送方式,但也存在MOV指令不能实指令不能实现的传送方式。现的传送方式。 IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院 对对MOV指令有以下几条详细规定,其中有些规定对其它指令指令
44、有以下几条详细规定,其中有些规定对其它指令也同样有效。也同样有效。 1两个操作数的数据类型要一样,要同为两个操作数的数据类型要一样,要同为8位、位、16位,位, 如:如:MOV BL,AX等是不正确的;等是不正确的; 2两个操作数不能同时为段存放器,如:两个操作数不能同时为段存放器,如:MOV ES,DS等;等; 3代码段存放器代码段存放器CS不能为目的操作数,但可作为源操作数,不能为目的操作数,但可作为源操作数, 如:指令如:指令MOV CS, AX等不正确,但指令等不正确,但指令MOV AX,CS等等是正确的;是正确的; 4立刻数不能直接传给段存放器,立刻数不能直接传给段存放器, 如:如:
45、MOV DS,100H等;等; 5立刻数不能作为目的操作数,如:立刻数不能作为目的操作数,如:MOV 100H,AX等;等; 6指令指针指令指针IP,不能作为,不能作为MOV指令的操作数;指令的操作数; 7两个操作数不能同时为存储单元,两个操作数不能同时为存储单元, 如:如:MOV VARA,VARB等,其中等,其中VARA和和VARB是同数据是同数据类型的内存变量。类型的内存变量。 IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院vPUSH进栈指令进栈指令 堆栈是一个重要的数据构造,它具有堆栈是一个重要的数据构造,它具有“先进后出的特点,通常用来保先进后
46、出的特点,通常用来保管程序的前往地址。它主要有两大类操作:进栈操作和出栈操作。管程序的前往地址。它主要有两大类操作:进栈操作和出栈操作。 指令格式:指令格式:PUSHPUSHReg/MemReg/Mem 一个字进栈,系统自动完成两步操作:一个字进栈,系统自动完成两步操作: SPSP-2 SPSP-2,SPSP操作数;操作数; 功功 能:将存放器、段存放器或存储器中的一个字数据压能:将存放器、段存放器或存储器中的一个字数据压入堆栈,堆栈指针减入堆栈,堆栈指针减2 2。IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院【例】【例】PUSH AX2816A7SS=
47、5000H SS50000堆栈段堆栈段525005250152502SP=2500H SP31 25AX283116A7SS=5000H SS50000堆栈段堆栈段525005250152502SP=24FEH SP2531 25AX525FF525FE1执行前执行前2执行后执行后IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院vPOP进栈指令进栈指令IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院【例】【例】POP BX1执行前执行前2执行后执行后486B9A28 SS50000堆栈段堆栈段5100151002510
48、03SP=1000H SP75 C1BX51000486B9A28 SS50000堆栈段堆栈段510015100251003SP=1002H SP48 6BBX51000IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院vIN输入指令输入指令 输入指令用来从指定的外设存放器取信息送入累加器。它有几种方输入指令用来从指定的外设存放器取信息送入累加器。它有几种方式:式: 长格式:长格式: IN AL, PORT 字节字节 IN AX, PORT 字字 执行操作:执行操作:AL PORT 字节字节 AX PORT+1, PORT字字 短格式:短格式: IN AL,
49、 DX 字节字节 IN AX, DX 字字 执行操作:执行操作:ALDX 字节字节 AXDX+1,DX字字IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院 留意:该指令的作用是从端口中读入一个字节或字,并保管在存留意:该指令的作用是从端口中读入一个字节或字,并保管在存放器放器AL或或AX中。假设某输入设备的端口地址在中。假设某输入设备的端口地址在0255范围之内,范围之内,那么,可在指令那么,可在指令IN中直接给出,否那么,要把该端口地址先存入中直接给出,否那么,要把该端口地址先存入存放器存放器DX中,然后在指令中由中,然后在指令中由DX来给出其端口地址。
50、来给出其端口地址。 IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院例如:例如:IN AL, 60H ;从端口;从端口60H读入一个字节到读入一个字节到AL中中IN AX,20H;把端口;把端口20H、21H按按“高高低低组成高高低低组成的的 字读入字读入AXMOV DX,2F8HIN AL,DX;从端口;从端口2F8H读入一个字节到读入一个字节到AL中中IN AX,DX;把端口;把端口2F8H、2F9H按按“高高低低组高高低低组成成 的字读入的字读入AXIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院vOUT输出指令
51、输出指令 输出指令用来把累加器的内容送往指定的外设存储器,它有几种方式:输出指令用来把累加器的内容送往指定的外设存储器,它有几种方式:长格式:长格式: OUT PORT, AL 字节字节 OUT PORT, AX 字字 执行操作:执行操作:PORTAL 字节字节 PORT+1, PORTAX字字短格式:短格式: OUT DX, AL 字节字节 OUT DX, AX 字字 执行操作:执行操作:DXAL 字节字节 DX+1,DXAX字字IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院留意:该指令的作用是把存放器留意:该指令的作用是把存放器AL或或AX的内容输出
52、到指定端口。的内容输出到指定端口。假设某输出设备的端口地址在假设某输出设备的端口地址在0255范围之内,那么,可在指令范围之内,那么,可在指令OUT中直接给出,否那么,要把该端口地址先存入存放器中直接给出,否那么,要把该端口地址先存入存放器DX中,中,然后在指令中由然后在指令中由DX来给出其端口地址。来给出其端口地址。例如:例如:OUT 61H,AL;把;把AL的内容输出到端口的内容输出到端口61H中中OUT 20H,AX;把;把AX的内容输出到端口的内容输出到端口20H、21H中中MOV DX, 3C0HOUT DX,AL;把;把AL的内容输出到端口的内容输出到端口3C0H中中OUT DX,
53、AX;把;把AX的内容输出到端口的内容输出到端口3C0H、3C1H中中IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院vXLAT 换码指令换码指令转换指令有两个隐含操作数转换指令有两个隐含操作数BX和和AL。格格 式:式:XLAT OPR 或或 XLAT执行操作:执行操作: ALBX+AL功功 能:其功能是把能:其功能是把BX的值作为内存字节数组的值作为内存字节数组首地址、下标为首地址、下标为AL的数组元素的值传送给的数组元素的值传送给AL。 IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院n例:例:MOV BX,of
54、fset table ; BX=0040Hn MOV AL,3n XLATn 指令执行后指令执行后 AL=33H32H31H33HDS=F000H DS数据段数据段F0040F0041 AL=3table30H BXF0042F0043把把BX的值作为内存字的值作为内存字节数组首地址、下标节数组首地址、下标为为AL的数组元素的值的数组元素的值传送给传送给AL。 IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院v地址传送指令地址传送指令取有效地址指令取有效地址指令LEA: 指令指令LEA是把一个内存变量的有效地址送给指定的存放器。是把一个内存变量的有效地址送
55、给指定的存放器。其指令格式如下:其指令格式如下: LEAReg,Mem该指令通常用来对指针或变址存放器该指令通常用来对指针或变址存放器BX、DI或或SI等置初值之用。等置初值之用。 取段存放器指令:取段存放器指令: 该组指令的功能是把内存单元的一个该组指令的功能是把内存单元的一个“低字传送给指令中低字传送给指令中指定的指定的16位存放器,把随后的一个位存放器,把随后的一个“高字传给相应的段存放器高字传给相应的段存放器DS、ES。其指令格式如下:。其指令格式如下: LDS/LESReg, Mem IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院例:例:LEA
56、 BX,BX+SI+0F62H LDS SI,10H LES DI,BX40 H00 H00 H30 H TABLE 3000H:1000HIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院v标志存放器传送指令标志存放器传送指令标志送标志送AH指令:指令: LAHF 执行操作:执行操作:AHFLAGS的低字节的低字节 AH送标志存放器指令:送标志存放器指令:SAHF执行操作:执行操作: FLAGS的低字节的低字节AH 标志进栈指令:标志进栈指令:PUSHF 执行操作:执行操作: SPSP - 2 SP+1, SPFLAGS标志出栈指令:标志出栈指令:POPF
57、执行操作:执行操作: FLAGSSP+1,SP SPSP+ 2IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院v类型转换指令指令类型转换指令指令 CBW AL AX 执行操作:执行操作: 假设假设AL的最高有效位为的最高有效位为0,那么,那么AH)= 00H 假设假设AL的最高有效位为的最高有效位为1,那么,那么AH)= FFHCWD AX DX,AX 执行操作:假设执行操作:假设AX的最高有效位为的最高有效位为0,那么,那么DX)= 0000H 假设假设AX的最高有效位为的最高有效位为1,那么,那么DX)= FFFFH 例:例: AX= 0BA45H C
58、BW ; AX=0045H CWD ; DX=0FFFFH AX=0BA45HIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院3.算术指令算术指令 算术运算指令是反映算术运算指令是反映CPU计算才干的一组指令,也是编程时常运用的一组指计算才干的一组指令,也是编程时常运用的一组指令。它包括:加、减、乘、除及其相关的辅助指令。令。它包括:加、减、乘、除及其相关的辅助指令。 该组指令的操作数可以是该组指令的操作数可以是8位、位、16位。当存储单元是该类指令的操作数时,该位。当存储单元是该类指令的操作数时,该操作数的寻址方式可以是恣意一种存储单元寻址方式。操作数的
59、寻址方式可以是恣意一种存储单元寻址方式。 加法指令加法指令 ADD、ADC、INC 减法指令减法指令 SUB、SBB、DEC、NEG、CMP 乘法指令乘法指令 MUL、IMUL 除法指令除法指令 DIV、IDIV 十进制调整指令十进制调整指令 DAA、DAS、 AAA、AAS、AAM、AADIBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学院信息学院浙江财经学院信息学院1.加法指令加法指令 v 加法指令:加法指令: ADD DST,SRCv功能:将目的操作数与源操作数相加,结果存入目的地址中,源地址的内容不功能:将目的操作数与源操作数相加,结果存入目的地址中,源地址的内容不改动。改动。v
60、执行操作:执行操作:DST SRC+DSTv 带进位加法指令:带进位加法指令: ADC DST,SRC v功能:将目的操作数加源操作数再加低位进位,结果送目的地址。执行操作:功能:将目的操作数加源操作数再加低位进位,结果送目的地址。执行操作:DST SRC+DST+ CFv 加加1指令:指令: INC OPR v功能:将目的操作数加功能:将目的操作数加1,结果送目的地址。,结果送目的地址。v执行操作:执行操作: OPR OPR+ 1v留意留意: 除除INC指令不影响指令不影响CF标志外,均对条件标志位有影响。标志外,均对条件标志位有影响。IBM-PC汇编语言程序设计汇编语言程序设计 浙江财经学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文物复制品授权生产合同
- 法兰供货协议
- 水工土石维修工安全专项模拟考核试卷含答案
- 爬行类繁育工达标强化考核试卷含答案
- 电镀工班组协作评优考核试卷含答案
- 耐火制品加工工岗后能力考核试卷含答案
- 漆器髹漆工安全行为测试考核试卷含答案
- 金属材涂层机组操作工安全文化考核试卷含答案
- 2026年秋季疟疾等蚊媒传染病预防知识
- 松香浸提工活动策划水平考核试卷含答案
- 中国开放型经济学-全套课件 第1-12章-马克思主义对外开放思想及其中国化时代化-对外开放与国家经济安全
- 劳动合同2026年标准范本协议
- 无主灯光设计
- 自动扶梯与自动人行道监督检验自检报告
- CPA会计科目课件
- 物流冰山理论解析
- 2026年消化专科护士培训试题及答案
- 串联电路和并联电路课件2025-2026学年人教版物理九年级全一册
- YB-T6230-2024《不锈钢单位产品能源消耗技术要求》
- 干熄焦安全培训课件
- 《大气科学概论》教学课件-第一章大气概述
评论
0/150
提交评论