汇编语言教学内容部分.docVIP

汇编语言教学内容部分.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言教学内容部分

第三章 IBM PC 机的指令系统和寻址方式 计算机完成的任何功能,都是通过执行一系列指令来实现的,因而每种计算机都有一组指令集提供给用户使用,这组指令集合就称为计算机的指令系统。 什么是寻址方式?计算机指令中,为了取得操作数的地址(目的取得操作数的内容)而进行的寻找该操作数物理地址的方式。 计算机的大部分计算都需要数据参加,这些参加某一指令计算的数据就叫该指令的操作数。汇编语言的指令格式如下: 操作码 操作数1,操作数2,操作数3,…,操作数n 操作码:指示计算机要进行的某种指令操作,在汇编语言中,操作指令采用助记符的形式来表示操作指令,即操作码。 操作数:不同的操作码需要不同的操作数数量,大部分操作码需要的操作数不超过3个,也有的指令不需要操作数。操作数的类型也是多种多样,它可以是常数、可以是存储单元、可以是地址、甚至可以某中指令操作码等等。汇编语言中很多操作码需带有两个操作数,就把前面的操作数称为目的操作数、后面的操作数称为源操作数。 IBM PC机的寻址方式 一、与数据有关的寻址方式 (一)立即寻址方式 操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存放代码段中,这种操作数叫立即数(相当高级语言的常量)。立即数可以是8位或16位数,若是16位数则高位字节存放在高地址中,低位字节存放在低地址中。这种方式如下图所示: 操作码直接对立即数进行操作。 立即寻址方式用来表示常数,它主要用于给寄存器赋初值,注意:只能用于源操作数字段,不能用于目的操作数字段。 例1 MOV AL,5 则指令执行后,(AL)=05H,8位运算 例2 MOV AX,3064H 则指令执行后,(AX)=3064H,16位运算 数据的执行过程可用下图示意: OP表示该指令的操作码部分。 (二)寄存器寻址 操作数在寄存器,指令指定寄存器号。对于16位操作数,寄存器可以是AX、BX、CX、DX、SI、DI、SP相BP等;对于8位操作数,寄存器可以是AL、AH、BL、BH、CL、CH、DL和DH。这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数,因而可以取得较高的运算速度。这种方式如下图所示: 例3 MOV AX,BX 如指令执行前(AX)=3064H,(BX)=1234H,则指令执行后,(AX)=1234H,(BX)保持不变。 除了上述两种寻址方法外,以下介绍的寻址方式的操作数都在除代码段以外的存储区中,通过不同的方式求得操作数地址,从而取得操作数。 (三)直接寻址 在IBM PC机中将操作数的偏移地址称为有效地址EA。在直接寻址方式中有效地址EA就在指令中,它存放在代码段中指令操作码之后,但操作数一般存放在数据段中,所以必须先求出操作数的物理地址,然后再访问存储器才能取得操作数,如下图所示。 如操作数在数据段中,则物理地址=16d×(DS)十EA。1BMPC机中允许数据存放在数据段以外的其他段中,此时应在指令中指定段跨越前缀,在计算物理地址时应使用指定的段寄存器。 例4 AX , [2000H] (DS)=3000H,则执行情况如下图所示。执行结果为;(Ax)=3050H 在汇编语言指令中,可以用符号地址代替数值地址,如: MOV AX,VALUE 此时VAIUE为存放操作数单元的符号地址。如写成 MOV AX,[VALUE] 也是可以的.两者是等效的。如果VALUE在附加段中,则应该指定段跨越前缀如下; MOV AX, ES:VALUE 或 MOV AX, ES:[VALUE] 直接寻址方式适用于处理单个变量,例如需要处理某个存放在存储器里的变量,可用直接寻址方式,将该变量先取到一个寄存器中,然后在做处理。 IBM PC机规定:除在双操作数中,除立即数外,必须有一个操作数使用寄存器方式。这也是一个常量常常送到寄存器去的原因。 (四)寄存器间接址 操作数的有效地址在基址寄存器BX、BP或变垃寄存器SI、DI中,而操作数则在存储器中,如下图所示。 如果指令中指定的寄存器是BX、SI、DI,则操作数在数据段(DS)中,所以用DS寄存器的内容作为段地址,即操作数的物理地址为: 物理地址=16d×(DS)十(BX) 或 物理地址;

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档