第2章汇编语言[001]

上传人:nt****6 文档编号:51007096 上传时间:2018-08-12 格式:PPT 页数:275 大小:2.73MB
返回 下载 相关 举报
第2章汇编语言[001]_第1页
第1页 / 共275页
第2章汇编语言[001]_第2页
第2页 / 共275页
第2章汇编语言[001]_第3页
第3页 / 共275页
第2章汇编语言[001]_第4页
第4页 / 共275页
第2章汇编语言[001]_第5页
第5页 / 共275页
点击查看更多>>
资源描述

《第2章汇编语言[001]》由会员分享,可在线阅读,更多相关《第2章汇编语言[001](275页珍藏版)》请在金锄头文库上搜索。

1、第2章 汇编语 言u程序设计语言可分为机器语言、汇编语言和高级语言三种。 u机器语言是由1和0两个二进制数码组成的,是唯一能直接在计算机上运行的语言。 u用一些助记符号来代替用二进制码编写的程序。这种用助记符来描述指令的语言称为汇编语言。用汇编语言写出的程序称为汇编语言程序。汇编语言程序必须翻译为二进制机器语言才能送给计算机执行,这个过程称为汇编。 u计算机不能直接执行高级语言,要通过编译或解释程序,将其翻译成为机器语言,才能被执行。常用的高级语言有:C语言、VC、VB等。1第2章 汇编语 言u2.1 寻址方式u2.2 指令系统u2.3 汇编语言u2.4 汇编语言程序设计4.124.1 寻址方

2、式u2.1.1 8086/8088指令概述u2.1.2 8086/8088指令寻址方式概述32.1.1 8086/8088指令概述u1.指令:指令是计算机执行某种操作的命令:内容包括做什么操作,操作数的来源,结果的存放,以及下一条指令的位置等等。u2. 指令系统:计算机提供给用户使用的所有指令的集合8086CPU包含133条指令。u3.程序:一些指令的有机结合,用于完成某种目的。 指令格式44. 指令格式:u操作码:操作数操作码: 指计算机所要执行的操作,如:传送、运算、移位、跳转等操作,是指令中必不可少的组成部分。是一种助记符。操作数:指出在指令执行操作过程中所需要的操作数;可以是操作数本身

3、;可以是操作数地址或是地址的一部分;可以是指向操作数地址的指针或其他有关 操作数的信息。指令一般格式55. 指令的一般格式:(1)操作码字段: 在机器里只需对某种操作确定的二进制代码。 通常用指令的第一个字节表示,不够可以占第二个字节中的3 位。 (2)操作数字段: 单地址指令的操作只需一个操作数,如加1指令: INC CX。 大多数运算型指令都需要两个操作数,如加法指令:ADD AX,BX ;运算的结果送到AX中,AX称为目的操作数,BX称为源操作 数。 操作数种类6(3)操作数的种类 隐含操作数:操作数被操作助记符隐含着。例:DAA;对压缩BCD加法结果进行调整,操作数隐含在AL中。立即操

4、作数:操作数包含在指令中,指令的操作数字段包含操作数本身。只能作为源操作数,不能作为目标操作数。例:MOV AL , 08H寄存器操作数:操作数包含在CPU的一个内部寄存器中,指令的操作数字段为CPU内部的一个寄存器名称。例:INC CX7 存储器操作数:操作数存放在内存数据区中,操作数字段包含着此操作数地址。在8086/8088编程中,任何内存地址是由两部分组成:段基地址:存储单元所在段的基地址,在程序中一般是隐含的(大部分情况是隐含在数据段寄存器中);偏移量:此存储单元与段基地址的距离,用有效地址(Effective Address) 表示:段内偏移量为适应各种数据结构的需要,可以有几个部

5、分组成,所以也把它称为有效地址。寻址方式不同EA的构成不同。 4.1.2寻址方式82.1.2 8086/8088指令寻址方式u寻址:寻找操作数的过程称为寻址。u寻址方式:寻找操作数的方法称为寻址方式。u8086/8088有8种寻址方式,可分为三类:1.立即寻址2.寄存器寻址3.存储器寻址直接寻址 寄存器间接寻址 基址寻址 变址寻址 基址加变址寻址相对寻址1 立即寻址91.立即寻址u操作数直接出现在指令中,紧跟在操作码之后,与操作码一起放在代码段区域中。u例1:MOV AL,05H指令执行后: (AL)=05Hu例2:MOV AX,3064H指令执行后: (AX)=3064H说明10说明:u立即

6、数可以是8位的,也可以是16位的。若是16位的的立即数,则存储时是高位字节放在高地址单元,低位字节放在低地址单元。u立即寻址主要用来给寄存器或存储单元赋初值。u用于给寄存器赋值时,无需执行总线周期,执行速度快。2.寄存器寻址112.寄存器寻址u操作数在指定的寄存器中。u对于16位操作数,寄存器可以是AX,BX,CX,DX,SI,DI,SP,BP,CS,DS,ES,SS;u对于8位操作数,寄存器可以是AH,AL,BH,BL,CH,CL,DH或DL。u这种寻址方式因为操作数在寄存器中,不需要访问存储器,因此运算速度较高。例子 12例1: MOV DS,AX设指令执行前:(AX)3064 (DS)1

7、234 指令执行后:(DS)3064H (AX)保持不变。 指令执行前:指令执行后:寄存器寻址方式DS例2:INC CX例3:DEC CL 3.存储器寻址133.存储器寻址u操作数都在内存单元中存放,指令中操作数部分是要进行操作数据的有效地址EA。uEA的组成不同又分为:直接寻址寄存器间接寻址基址寻址变址寻址基址加变址寻址相对寻址(1)直接寻址14(1)直接寻址(Direct addressing)指令中操作数部分直接给出操作数的有效地址EA。操作数一般存放在数据段中,即默认的段寄存器为DS。必须先求出操作数的物理地址,然后再访问存储器才能取得操作数。物理地址 : PA16d(DS)+EA允许

8、数据存放在数据段以外的其它段中。此时应在指令中指定段超越(可以是CS,SS,ES)。例子15例:MOV AX,3100H设:(DS)=6000H , (63100H)=3050H 则:(AX)=3050H又如:用符号地址代替数值地址。MOV AX,VALUE 或 MOV AX,VALUEVALUE有效操作数单元的符号地址。如:VALUE在附加段中,则应指定段跨越。MOV AX,ES:VALUE或MOV AX,ES:VALUE直接寻址方式注意16注意:(1)直接寻址方式适用于处理单个变量。(2)直接寻址方式隐含的段寄存器是 DS,8086/8088允许段跨越,即允许使用 CS SS ES作为段寄

9、存器, 这时,必须在指令中特别标明。(3)IBM PC机中规定双操作数指令必须有一个操作数使用寄 存器方式,这就是常常先要把一个变量送到寄存器去的原因。例: 要处理某存放在存储器里的变量,可以用直接寻址方式把变量 先取到一个寄存器中再作处理。(2)寄存器间 接寻址17(2)寄存器间接寻址方式(Register indirect addressing)操作数的有效地址EA在寄存器(BP、BX、SI、DI)中a、若选择SI、DI、BX作为间接寻址操作数一般在现行数据段区域中,用(DS)作为段地址。即操作数物理地址为:物理地址PA=16 d (DS)+(BX)物理地址PA=16 d (DS)+(SI

10、)物理地址PA=16 d (DS)+(DI)例子18例:MOV BX,DI设(DS)=6000H (DI)=2000HPA=62000H(62000H)=50A0H(BX)=50A0H寄存器间接寻址方式MOV BX,DIb19b、若选择BP寄存器作为间接寻址操作数在堆栈段区域中,用SS寄存器的内容作为段地址。操作数物理地址: PA=16d (SS)+(BP)例: MOV AX, BP 执行前: (SS)=1000H , (BP)=3000H , PA=13000H,(13000H)=1234H执行后: (AX)=1234Hc寄存器间接寻址方式MOV BP, AX20c 、用 SI、DI、BX

11、、BP作为间接寻址允许段跨越 指令中可以指定段跨越前缀来取得其他段中的数据。例:MOV ES:DI, AX物理地址PA=16 d (ES)+(DI)MOV DX, DS:BP物理地址PA=16 d (DS)+(BP)3。4.基址变址 寻址21(3、4)基址/变址寻址操作数的有效地址EA是一个基址或变址寄存器的内容和指令中指定的8位或16位位移量(displacement)之和。其中,BX、BP为基址寄存器;SI、DI为变址寄存器。22操作数一般在内存的数据段中,但允许段超越。除有段超越前缀之外,形成物理地址有二种方式:例子23例:MOV AX, COUNT BP 或MOV AX, COUNT+

12、BP 或MOV AX, COUNT+BPCOUNT为16位位移量。指令执行前: (SS)=5000H, (BP)=3000H, COUNT=2040H, (AX)=1234H指令执行后:EA=5040H PA=55040H (55040H)=5548H (AX)=5548H寄存器相对寻址方式 MOV AX,COUNTBP 用途24用途:这种寻址方式可用于表格处理。表格首地址COUNT修改基址或变址寄存器来取得表格中的值。例:某数据表的首地址为COUNT欲读取表中第10个数据,存放到(AL)中。第10个数据的有效地址: EA= COUNT + 9MOV SI , 09HMOV AL , SI+C

13、OUNT*基址(变址)寻址方式也可以使用段超越前缀MOV DL,ES:STRINGSI基址加变址25(5)基址加变址寻址方式(Based indexed addressing)操作数的有效地址EA是一个基址寄存器和一个变址寄存器的 内容之和,基址寄存器名和变址寄存器名均由指令指定。PA物理地址26除有段超越前缀之外,形成物理地址有二种方式:例子27例:MOV AX, BXSI 或 MOV AX, BX+SI执行指令前:(DS)=3200H,(BX)=0456H,(SI) =1094H(334EAH)=4567H执行指令后:EA=14EAHPA=334EAH(AX)=4567H基址加变址寻址方式

14、MOV AX,BX+SI用途28用途:这种寻址方式同样适用于数组或表格处理。表格首地址 基址寄存器中,用变址寄存器来访问数组中的元素。 二个寄存器都能修改,所以比基址(或变址)方式更灵。这种寻址方式允许段超越。使用段超越前缀格式:MOV AX,ES:BXSI相对寻址方式29(6)相对基址加变址寻址方式(相对寻址方式)(Relative based indexed addressing)操作数有效地址EA是一个基址寄存器和一个变址寄存器的 内容和8位或16位位移量之和 。物理地址的形成30除有段超越前缀之外,形成物理地址有二种方式:例子31例: MOV AX, MASKBXDI MOV AX,

15、MASK BX+DI MOV AX,MASX+BX+DI执行指令前: (DS)=3000H (BX)=1346H (DI)=0500H MASK=1234H (32A7AH)=4050H执行指令后: EA=2A7AH PA=32A7AH (AX)=4050H相对基址加变址 MOV AX, MASK+BX+DI 用途32用途:这种寻址方式为堆栈处理提供方便:(BP) 栈顶(一般 BP 可指向栈顶)从栈顶到数组的首地址可以用位移量表示(MASK).变址寄存器(SI)或(DI)指向数组中某个元素。33u1.符号:在指令系统中,符号是一个字符串,它由字母字符( AZ, az)、数字字符(09)和特殊字

16、符(?、 $、 、 _(下划线)构成。首字符不可以是数字;不能是汇编语言中有特定意义的保留字,如:MOV,AH 等符号的字符个数不大于80,但只有前31个有效;对于字母字符不区分大小写;单独一个?不能作为一个符号。正确的符号:ABCDX1、aBCdx1和abcdx1表示同一 符号;$1、L123、?459。错误的符号:L 1、X=CT、34AB,因符号中有空格、 有“=”、数字为首字符。符号、变量和常量三个概念2、3变量、常量34u2.变量:在汇编语言中,变量是存储器中一个数据或多个数据( 一个数据区)的符号表示,当表示数据区时,变量的指针仅指向该数据区的第一个 数据项。变量的构成法同符号。u3.常量:常量表示固定的值,通常又分为数值常量和符号常量。数值常量就是以值的形式表示常量,如355、 46A

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

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号