第七章-公开课件.pptVIP

  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文档。上传文档
查看更多
计算机科学部 第七章 高级汇编语言技术 1。宏汇编技术与子程序技术相比有哪些优、缺点?它们的工作方式有何差别? 虚参与实参是否应一一对应? 哑元表中的变元可以取何种值? 操作符及%操作符如何应用? 宏定义体内的程序段有标号怎么办? 宏定义允许嵌套、递归调用吗? IRP与IRPC之间的区别? 条件汇编中有哪几种条件? 高级语言结构中有哪几种形式? 第一节 宏汇编    1   PUSH   DX   1   PUSH   AX   1   MOV    AX,CX ;第一个操作数在CX中   1   IMUL   VAR  ;第二个操作数是变量VAR   1   MOV    XYZ[BX], AX;结果存入实参XYZ[BX]   1   POP    AX   1   POP    DX        .         .   1   PUSH   DX   1   PUSH   AX   1   MOV    AX,240 ;第一个操作数是立即数240   1   IMUL   BX    ;第二个操作数在BX中   1   MOV    SAVE, AX ;结果存入变量SAVE   1   POP    AX   1   POP    DX 在程序中,宏定义必须出现在宏调用之前,也就是说必须先定义后调用。 往往把宏定义放在程序中所有段的代码之前,即在程序一开始先列出程序中所用的所有宏定义,以便在程序中调用。 宏定义可以无变元。(例7.2) 变元可以是操作码。 (例7.3) 变元可以是操作码的一部分,但在宏定义体中必须用 作为分隔符。(例7.4)  变元可以是ASCII码串。(例7.5)  第二节 重复汇编 第三节 条件汇编 【本章小结】 宏是源程序中一段有独立功能的程序代码。它只需要在源程序中定义一次,就可以多次调用它。调用时只需要用一个宏指令语句。 宏展开时用宏定义体取代源程序中的宏指令名,而且用实元取代宏定义中的哑元。在取代时,实元和哑元一一对应。实元的个数应该和哑元的个数相等,但汇编程序并不要求它们必须相等(在MASM6中,可以用 :REQ指定某个变元必须有)。宏展开后所得到的语句应该是有效的,否则汇编程序将会指示出错。 由于宏指令可以带哑元,调用时可以用实元取代,使宏汇编的使用增加了灵活性。实元可以是常数、寄存器、存储单元名以及用寻址方式能找到的地址或表达式等。还可以是指令的操作码或操作码的一部分。甚至可以为空。 宏调用是在汇编期间展开的,每调用一次就把宏定义体展开一次,因而它占有的存储空间与调用次数有关,调用次数越多则占有的存储空间也就越大。用宏汇编可以免去执行时间上的额外开销,但如果宏调用次数较多的话,则其空间上的开销也是应该考虑的因素。一般说来,那些较短的且变元较多的功能段,使用宏汇编更为合理。 宏定义必须先定义后调用。允许嵌套、递归。 操作符在宏定义体中可以作为哑元的前缀,展开时把前后两个符号合并而形成一个符号,这个符号可以是操作码、操作数或是一个字符串。 %操作符把跟在它之后的表达式的值转换成当前基数下的数,在宏展开期间,用这个数来取代哑元。 MASM6中可以用 := 操作符为宏变元提供缺省的参数值。 LOCAL伪操作可以解决宏展开后出现的标号多重定义问题。 MASM6用.LISTMACROALL、.LISTMACRO和 .NOLISTMACRO来控制汇编清单中宏展开的列出情况。 连续地重复完成相同的或者几乎完全相同的一组代码,可使用重复汇编或不定重复汇编。 汇编程序能根据条件伪操作中的条件把一段源程序包括在汇编语言程序内或者把它排除在外。 在MASM6.0中引入了几种高级语言结构。其目的是为了减轻汇编语言程序员的编程负担,同时也增加了程序的可读性。 7.2.2.2 IRPC伪操作 格式为:IRPC  哑元 , 串 (或 串 )     ……(重复块)     ENDM IRPC和IRP类似,但自变量表必须是字符串。重复次数由字符串中的字符个数确定,每次重复用字符串中的下一个字符取代重复块中的哑元。 汇编程序能根据条件把一段源程序包括在汇编语言程序内或者把它排除在外,就用到条件伪操作。 条件伪操作的一般格式是 :  IF ×× 自变量     …… }自变量满足给定条件汇编此块    [ ELSE ]     …… }自变量不满足给定条件汇编此块    ENDIF 自变量必须在汇编程序第一遍扫视后就成为确定的数值。 条件伪操作可以用在宏定义体内,也可以用在宏定义体外,并且还允许嵌套任意次。 条件伪操作中的××表示条件如下: IF  表达式  汇编程序求出表达式的值,如此值不为0则满足条件。 IFE 表

文档评论(0)

小红帽 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档