微机原理与接口技术——第4章.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文档。上传文档
查看更多
* 宏功能程序设计 宏指令是另一种具有独立功能的程序段。 宏指令也称宏命令(宏功能,简称“宏”)它与子程序的功能与组成十分相似,但是两个完全不同的程序技术,并且一般它们的应用领域也不同。 宏基本上用于核心功能程序的开发。 * 宏与子程序的区别 子程序:在程序中只有一段程序代码。 宏:每调用一次,产生一段程序代码。 2. 子程序:在执行时,跳转到子程序代码处执行。执行完,再返回紧随调用指令后的指令继续执行。 宏:在程序汇编时用执行代码替换宏命令。没有跳转和返回过程。 3. 子程序可以在程序的任何地方定义,只要在生成执行程序前定义完成。宏必须在第一次调用前定义。 * 宏指令 宏指令象指令操作助记符一样,定义后便可在程序中用这个名字来代替这段指令序列。 宏指令同样允许传递参数,传递方式也比子程序简单。 可以将经常使用的宏指令集中在一起建立宏指令库,在程序中只需按规定的条件调用即可。 宏指令可以与CPU指令助记符同名,因而可以替代原来的CPU指令。 * 宏指令的使用 宏指令的调用要经过宏定义、宏调用和宏扩展三个步骤。 宏定义和宏调用由用户完成。 宏扩展则由宏汇编程序在汇编期间完成。 * 宏指令的定义 宏指令定义用伪指令MACRO和ENDM来实现。 宏定义的格式: 宏指令名 MACRO [形参1] [,形参2,……] …… ENDM MACRO和ENDM间的程序段称为宏体。 宏体是宏指令的程序段,它由一系列指令和伪指令组成。 * 宏指令的定义 形参是临时变量的名字,可有可无、个数不限。 宏定义中的形式参数不仅可以出现在指令的操作数部分,也可以出现在指令的助记符部分。在宏扩展时,若形参是某助记符的一部分,则在形参前面加上符号“&”。 高级语言的子程序也有参数,(形式参数) 调用时,用实参代替。 汇编语言中子程序(PROC)定义时,没有参数 * 宏指令 CODE SEGMENT SHIFT MACRO A, B, C ;宏定义 MOV CL, C SA B, CL ;形参为指令助记符的一部分,加前缀 ENDM MAIN: NOP MOV BX, 0FFH SHIFT HL, BX, 3 ;宏调用,实现左移功能 NOP ;无作用,为两次显示宏扩展进行隔离 NOP MOV AX, 055H SHIFT HR, AX, 2 ;宏调用,实现右移功能 NOP CODE ENDS END MAIN * 取消宏定义伪指令PURGE 宏指令可以与原指令系统中指令相同。 可以替换原来的指令。 伪指令PURGE的格式: PURGE 宏指令名[,宏指令名,…] 恢复原指令的功能。 PURGE SHIFT,…… * 宏调用和宏扩展 宏指令名在源程序中的出现称为宏调用。 宏调用的格式 宏指令名 [实参量,实参,……] 宏指令名必须与宏定义中的宏指令名一致,其后的实参可以是数字、字符串、符号名或尖括号括起来的带间隔符的字符串。 实参在顺序、属性、类型上要同形参保持一致,个数与形参应相等。 用实参代替形参,并将宏体插到宏调用处称为宏扩展。 * 例:宏扩展 0450H 90 NOP 0451H BBFF00 MOV BX, 00FFH 0454H B103 MOV CL, 03H ;宏扩展* 0456H D3E3 SHL BX, CL ; * 0458H 90 NOP 0459H 90 NOP 045AH B85500 MOV AX, 0055H 045DH B102 MOV CL, 02H 045FH D3E8 SHR AX, CL ;宏扩展 0461H 90 NOP * 宏体中的标号和变量 每调用一次宏指令都生成一段代码(宏扩展)。 宏体中允许定义标号,也允许定义变量(这个变量不是形参)。 宏指令在程序中多次调用时,在进行宏汇编时就会产生多个重名的标号和变量,造成多次定义错误。 * 宏汇编伪指令LOCAL

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档