第七章 汇编语言程序设计_第1页
第七章 汇编语言程序设计_第2页
第七章 汇编语言程序设计_第3页
第七章 汇编语言程序设计_第4页
第七章 汇编语言程序设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章汇编语言程序设计何宾2023.08条件汇编251汇编器支持使用多个条件汇编命令的条件程序汇编条件汇编可用在单个源文件中实现不同的程序版本或不同的存储器模型使用条件汇编,程序开发人员可以轻松维护一个满足多个应用的源模块有两组不同的条件控制前缀为美元符号字符(“$”)的条件控制是控制命令。它们只能测试使用$SET和$RESET命令定义的符号。前面没有美元符号的条件控制是可以测试更广泛定义符号的条件语句。但是,它们不能测试用$SET和$RESET命令定义的符号。条件汇编用于条件汇编的汇编器命令命令功能$IF如果条件为真,则汇编块$ELSE如果前面的$IF的条件为假,则汇编块$ELSEIF如果条件为真且前面的$IF或$ELSEIF为假,则汇编块$ENDIF结束$IF块$SET设置符号(它可以由$IF或$ELSEIF测试)为真或一个指定的值$RESET设置符号(它可以由$IF或$ELSEIF测试)为假IF如果条件为真,则汇编模块ELSE如果前面IF的条件为假,则汇编块ELSEIF如果条件为真且前面的IF或ELSEIF为假,则汇编块ENDIF结束IF块条件汇编条件汇编$IF(AA=10)DSEGAT0020h$ELSEDSEGAT0030h$ENDIF条件汇编AASET10IF(AA=10)DSEGAT0020hELSEDSEGAT0030hENDIF条件汇编在使用条件汇编时,需要注意以下几点:有条件汇编的文本块必须用$IF、$ELSEIF、$ELSE和$ENDIF或IF、ELSEIF、ELSE和ENDIF括起来命令行上可以使用$SET和$RESET命令来定义条件命令中使用的符号最多可以嵌套十个$IF或IF块。如果块未被转换,则作为该块一部分的嵌套条件块也将被跳过宏的定义和调用宏处理器使得开发者能够在汇编程序中定义和使用宏(macro)定义宏时,提供要与宏名字关联的文本(通常是汇编代码)。然后,要在汇编程序中包含宏文本,则需要提供宏的名字。汇编器使用宏定义中指定的文本替换宏名字宏的定义和调用当程序开发人员编写汇编程序时,宏提供了几个优点:频繁使用宏,可以减少程序员引起的错误宏允许程序开发人员定义在整个程序中重复使用的指令序列。后续使用宏每次都会真实的提供相同的结果宏减少了重复编程序列中引入错误的可能性。当然,在宏定义中引入错误会导致在错误在使用宏的任何地方通过程序传播宏中使用的符号范围仅限于该宏程序开发人员不必担心使用以前使用的符号名字

宏非常适合创建简单的代码表手工制作表格既枯燥又容易出错宏的定义和调用通常,可以将宏认为是子程序调用,但子程序中的代码包含在宏调用点的一行中但是,宏不应用于替换子程序每次调用子程序只需要调用子程序所需的代码。对于宏的每次调用都包括与汇编程序中的宏内联的汇编代码如果频繁使用较大的宏,则会导致程序代码的长度快速增加在静态环境中,子程序是更好的选择,因此可以显著减少程序代码的长度。但在时间关键的动态程序中,宏可以加快算法或其他经常调用的语句的执行速度,而不需要过程调用的开销的代价宏的定义和调用在决定宏或子程序时,需要遵循以下规则:当某些程序频繁执行或必须将存储器的使用保持在最低限度时,子程序是最好的当需要最高处理器速度且消耗的存储器大小不太重要时,宏是最佳的宏减少了输入简短、重复的汇编代码块所需的输入量宏的定义和调用A251宏汇编程序提供三种不同的宏语言:标准汇编程序宏与许多其他宏汇编程序相似。它们允许程序开发人员定义看起来像标准汇编程序指令的宏宏处理语言(MacroProcessingLanguage,MPL)宏与IntelASM-251汇编程序兼容。它们允许程序开发人员重新翻译最初为该宏汇编器编写的现有源文件C预处理器宏与C预处理器兼容。它们允许程序开发人员在C和汇编程序源代码中使用相同的include文件宏的定义和调用定义标准宏的语法格式为:macro-nameMACRO<[>parameter-list<]><[>LOCALlocal-labels<]>……macro-body……ENDM其中:macro-name为宏的名字parameter-list是可以传递给宏的形参的可选列表local-label是宏内本地标号的可选列表macro-body是展开以替换宏名称和参数列表的文本。它可能包含对其他宏的调用。如果是,这些宏也会展开。定义宏时,在调用宏之前,宏体中包含的宏调用不会展开宏的定义和调用BMOVEMACROsrc,dst,cnt;宏的定义LOCALlabMOVR2,#cntMOVR1,#srcMOVR0,#dstlab:MOVA,@R1MOV@R0,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论