【2017年整理】3汇编语言程序设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【2017年整理】3汇编语言程序设计

第3章 汇编语言程序设计; 操作数字段可以有一个、两个或者没有,分别称为一地址指令、二地址指令和零地址指令。单操作数指令就是一地址指令,它只需要指定一个操作数。在8086指令系统中大部分属于二地址指令,此时这两个操作数分别称为目的操作数和源操作数,注意两个操作数之间用逗号隔开。 二地址指令格式 另外,在指令系统中还有一些指令,是为了在程序执行过程中形成转移地址,主要包括转移指令和调用指令。因而,寻址方式可以归结为两类:操作数寻址和程序转移寻址。;1. 立即寻址 操作数直接放在指令中,它是紧跟在操作码后面一个8位或16位的常数。 例:MOV AX,1234H ;其中MOV表示操作码,AX和1234H分别为目的操作数和源操作数。 指令执行后,(AX)=1234H 这种寻址方式主要用来给寄存器或存储单元赋初值,并且只能出现在源操作数字段。因为操作数可以直接从指令中取得,在取指的时候指令已被读入到CPU内部,不需要使用额外的总线周期,所以,立即寻址的特点就是速度快。 ;2. 寄存器寻址 操作数在寄存器当中,在指令中指定寄存器号。不同位数的操作数使用不同的寄存器。对于16位操作数,寄存器可以是AX、BX、CX、DX、SI、DI、SP、BP,对于8位操作数,寄存器可以是AH、AL、BH、BL、CH、CL、DH、DL。 例:MOV AX,BX 指令执行前(AX)=3056H,(BX)=1234H;则指令执行后(AX)=1234H,BX保持不变。 这种寻址方式由于操作数在寄存器中,不需要访问存储器取得操作数,因而可以得到较高的运算速度。;3. 直接寻址 指令操作码之后直接给出操作数的16位偏移地址,适用于处理单个变量,操作数一般在数据段当中。 例:MOV AX,[2000H] 设指令执行前(DS)=3000H,(32000H)=34H,(32001)=12H,则 物理地址=(DS)×16+2000H =30000H+2000H=32000H 指令执行后:(AX)=1234H,寻址过程如图所示:;在汇编语言指令中,可以用符号地址代替数值地址,如: MOV AX,VALUE 如果数据在附加段当中,应在指令中指明段跨越前缀, 如:MOV AX,ES:VALUE ;4. 寄存器间接寻址 操作数的偏移地址指令中指明的基址寄存器或变址寄存器中,???操作数则在存储器中。在8086系统中可以使用的基址或变址寄存器有BX、BP、SI和DI,当使用BP时,默认的段寄存器为SS,否则默认的段寄存器为DS。 例:MOV AX,[BX] 设指令执行前:(DS)=2000H,(BX)=1000H,(21000H)=A0H,(21001H)=50H,则 物理地址=(DS)×16+(BX)=20000H+1000H=21000H 指令执行后:(AX)=50A0H,寻址过程如图所示:; ;物理地址=(DS)×16+(SI)+COUNT=30000H+2000H+3000H=35000H 指令执行后:(AX)=1234H,寻址过程如所示: ;6. 基址变址寻址 操作数的偏移地址是指令中指定的一个基址寄存器和一个变址寄存器的内容之和。当使用BP为基址寄存器时,默认的段寄存器为SS,否则默认的段寄存器为DS。 例:MOV AX,[BX][DI],也可写成MOV AX,[BX+DI] 设指令执行前:(DS)=2000H,(BX)=1000H,(DI)=0010H,(21010H)=34H,(21011H)=12H,则 物理地址=(DS)×16+(BX)+ (DI)=20000H+1000H+0010H=21010H 指令执行后:(AX)=1234H,寻址过程如图所示:; 基址变址寻址示意图 ;7. 相对基址变址寻址 操作数的偏移地址是一个基址寄存器与一个变址寄存器的内容和指令中指定的位移量之和。 例:MOV AX,VAL[BX][SI],也可写成MOV AX,[VAL+BX+SI] 设指令执行前:(DS)=2000H,(BX)=1000H,(SI)=0200H,VAL=0050H,(21250H)=34H,(21251H)=12H,则 物理地址=(DS)×16+(BX)+ (SI)+VAL = 20000H+1000H+0200H+0050

文档评论(0)

junzilan11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档