首页 第5 3宏汇编技术。

第5 3宏汇编技术。

举报
开通vip

第5 3宏汇编技术。宏汇编技术设问:1.什么是宏?2.宏与子程序的相同之处与不同之处是什么?3.汇编指令、伪指令、宏指令三者有何不同?4.多个代码段下的多个模块如何编写、汇编及连接?宏宏是源程序中一段有独立功能的程序代码。宏也可以称为宏指令、宏操作。宏的使用需要经过三个步骤:宏定义、宏调用和宏展开。宏定义宏定义语句MACRO和子程序定义语句PROC一样都是伪指令。宏定义需要一对伪指令MACRO和ENDM完成。格式:宏名字MACRO[哑元1,哑元2,…]…语句串…ENDM说明:宏定义并不产生目标代码,只是用来说明“宏名字”与一段源代码之...

第5 3宏汇编技术。
宏汇编技术设问:1.什么是宏?2.宏与子程序的相同之处与不同之处是什么?3.汇编指令、伪指令、宏指令三者有何不同?4.多个代码段下的多个模块如何编写、汇编及连接?宏宏是源程序中一段有独立功能的程序代码。宏也可以称为宏指令、宏操作。宏的使用需要经过三个步骤:宏定义、宏调用和宏展开。宏定义宏定义语句MACRO和子程序定义语句PROC一样都是伪指令。宏定义需要一对伪指令MACRO和ENDM完成。 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 :宏名字MACRO[哑元1,哑元2,…]…语句串…ENDM说明:宏定义并不产生目标代码,只是用来说明“宏名字”与一段源代码之间的联系。其中哑元1,哑元2,…是虚拟参数或形式参数,用逗号分隔。虚参或形参可不设置。例1定义实现源程序结束功能的宏RETSYSRETSYSMACROMOVAH,4CHINT21HENDM注意:起名时,不要和汇编语言的指令名、保留字相同。例2定义键盘输入宏指令INPUTINPUTMACROMOVAH,01HINT21HENDM例3定义两数相加宏指令SUMMSUMMMACROX1,X2,RESULTMOVAX,X1ADDAX,X2MOVRESULT,AXENDM宏调用在程序中使用宏时,只要写出宏名字[实参]既可。例1从键盘输入一个字符,判断是否为“-”号,不是则继续输入,是结束。(利用前面定义的宏).MODELSMALL.STACK100H.CODESTART:INPUTCMPAL,‘-'JNESTARTRETSYSENDSTART例2调用宏SUMM实现(BX)=34+25.MODELSMALL.CODESTART:SUMM34,25,BXRETSYSENDSTART宏展开源程序在汇编时,宏指令被汇编程序用相应的程序代码所取代,这个过程称为宏展开。下面来看一下8.1.2宏调用的例子在宏展开后的情况。例1展开前:.MODELSMALL.STACK100H.CODESTART:INPUTCMPAL,‘-'JNESTARTRETSYSENDSTART展开后:START:1MOVAH,01H1INT21HCMPAL,‘-'JNESTART1MOVAH,4CH1INT21H例2展开前:.MODELSMALL.CODESTART:SUMM34,25,BXRETSYSENDSTART展开后:START:1MOVAX,341ADDAX,251MOVBX,AX1MOVAH,4CH1INT21H练习:(1)定义显示一个字符的宏指令OUTPUT,要显示的字符用哑元Z 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示。(2)定义宏指令KEY_STR,实现从键盘输入一串字符。(3)定义宏指令DISPLAY,显示一串字符。(4)编程序。利用宏指令INPUT和OUTPUT实现将键入的小写字母变为大写。宏与子程序宏与子程序都是编写结构化程序的重要手段,两者各有特色。?相同之处:宏和子程序都可以定义为一段功能程序,可以被其他程序调用。?不同之处:(1)宏指令利用哑元和实元进行参数传递。宏调用时用实元取代哑元,避免了子程序因参数传递带来的麻烦。使宏汇编的使用增加了灵活性。(2)实元还可以是指令的操作码或操作码的一部分,在编译汇编的过程中指令可以改变。(3)宏调用的工作方式和子程序调用的工作方式是完全不同的。如图:子程序调用方式宏调用方式宏的参数在宏定义的形参表中的参数可以有多种形式,灵活使用这些参数可以实现不同功能。1.变元是操作数例1定义串传送宏指令STR_MOV。宏定义:STR_MOVMACROOPR1,OPR2,OPR3PUSHCXMOVCX,OPR1LEASI,OPR2LEADI,OPR3CLDREPMOVSBPOPCXENDM宏调用:……STR_MOV10,MESS1,MESS2……STR_MOV20,X,Y宏展开:1PUSHCX1MOVCX,101LEASI,MESS11LEADI,MESS21CLD1REPMOVSB1POPCX……1PUSHCX1MOVCX,21LEASI,X1LEADI,Y1CLD1REPMOVSB1POPCX3.变元是操作码一部分例2定义移位宏指令SHIFT。宏定义:变元出现在操作码中,要用&作为分隔符。SHIFTMACROA,B,CPUSHCXMOVCL,CS&AB,CLPOPCXENDM宏调用:SHIFTHR,BX,1SHIFTAL,AL,3宏展开:1PUSHCX1MOVCL,11SHRBX,CL1POPCX1PUSHCX1MOVCL,31SALAL,CL1POPCX宏比较子程序仅是源程序级的简化:宏调用在汇编时进行程序语句的展开,不需要返回;不减小目标程序,执行速度没有改变通过形参、实参结合实现参数传递,简捷直观、灵活多变还是目标程序级的简化:子程序调用在执行时由CALL指令转向、RET指令返回;形成的目标代码较短,执行速度减慢需要利用寄存器、存储单元或堆栈等传递参数宏比较结论子程序宏与子程序具有各自的特点,程序员应该根据具体问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 选择使用那种方法通常,当程序段较短或要求较快执行时,应选用宏;当程序段较长或为减小目标代码时,要选用子程序例:十进制到十六进制数转换程序。程序要求从键盘取得一个十进制数,然后把该数以十六进制形式在屏幕上显示出来。分析:(1)键盘输入的十进制数(ASCII),要将它转换成二进制存放。?宏:DECIBIN(2)二进制转换成十六进制数并显示?BINIHEX(3)为避免屏幕上的重叠,必须有回车和换行功能。?CRLF用三个宏联合实现题目要求,?联合由主程序达到。将BX寄存器作为过程之间传送转换数据的“交通员”。主程序 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图如下:开始调DECIBIN调CRLF显示回车和换行调BINIHEX从键盘取得十进制数,存于BX中调CRLF结束用十六进制形式显示BX中数注:主程序部分是死循环程序。CODESEGMENTASSUMECS:CODErepeat:DECIBINCRLFBINIHEXbxCRLFJMPREPEATCODEENDSENDREPEAT从键盘取得十进制数,存于BX中流程图BX?0键盘输入数据数据在0~9D之间?N退出Y扩展成16位数做运算–––转换10a+b结果存入BXDECIBIN宏:(注:退出条件)DECIBINmacroMOVBX,0NEWCHAR:MOVAH,1INT21HSUBAL,30HjlexitCBWXCHGAX,BXmovcx,10dmulcxxchgax,bxADDBX,AXJMPNEWCHARexit:endmCRLF宏CRLFmacroMOVAH,02HMOVDL,0AHINT21HMOVAH,02HMOVDL,0DHINT21HendmBINIHEX宏BINIHEXmacrobxSUBAX,AXPUSHAXMOVCH,4NOTATE:MOVCL,4ROLBX,CLMOVAL,BLANDAL,0FHADDAL,30HCMPAL,3AHJLPRINTITADDAL,7HPRINTIT:MOVDL,ALMOVAH,2INT21HDECCHJNZNOTATEendm讨论:(1)要求:当输入“#”时,退出主程序,如何修改程序?(2)各子程序的应用。
本文档为【第5 3宏汇编技术。】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_769254
暂无简介~
格式:ppt
大小:3MB
软件:PowerPoint
页数:0
分类:
上传时间:2020-05-18
浏览量:2