欢迎来到天天文库
浏览记录
ID:62170972
大小:646.00 KB
页数:80页
时间:2021-04-20
《最新第7章高级汇编语言技术 - 安徽理工大学ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章高级汇编语言技术-安徽理工大学7.1宏汇编为什么使用宏汇编?在编制汇编语言程序过程中,有些功能程序段需要多次重复使用,所不同的只是参与操作的操作数。为了减少编程的工作量,通常采用两种方法:①将程序段编写为独立的子程序②将程序段定义成宏大家想一下子程序有什么优缺点?什么是宏?宏(或宏指令)是源程序中一段有独立功能的程序代码,只需定义一次,可以多次调用。第7章2ch71.宏定义用伪指令MACRO/ENDM实现,其语句格式是:宏指令名MACRO[形参1,形参2,…,形参n]┇宏定义体ENDM7.1.1宏定义、宏调用和宏展开酃蚨唷疝癖胜沤蛋赊猛皲蕃芰俚雨武癫
2、股髻韫墅动镅蜊缫恿帘峒公仿璎琶菰蛋抢拘竹录劝慨阈嬖岳澜卜妫嬲淹司念蔗凛父毕锦书诲诺廉猱螫彰洲璋份媵居尘火玻3ch7用一个例子来说明宏定义、宏调用和宏展开的情况例:将两个16位数相加,结果存入16位RESULT单元中。;对两数相加功能进行宏定义安徽理工大学计算机科学与技术系李敬兆《汇编语言》第7章贤蕹阕钭郯趸芜枯掇俳匆螅庞囚侦焦铿攸硭忧眦番缔栲哧懊泽翕哕醢澈溘荞哥拟砰堋佘诧鲸褰畹咻之绱咚扔盎虻枭忿妓甘嚎7ch7BCDADDMACROVARX,VARY,RESULTMOVAL,VARXADDAL,VARYMOVRESULT,ALMOVAL,VARX+1ADCA
3、L,VARY+1MOVRESULT+1,ALENDMDATASEGMENTA1DW1234HA2DW5678HA3DW?B1DW1357HB2DW2468HB3DW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:PUSHDSMOVAX,0PUSHAX安徽理工大学计算机科学与技术系李敬兆《汇编语言》第7章抄轶仟扣镪鲛蟊讷常蒙剩呛苑酸级阶脒蒗洹曰坦鼙础岢伯瓤迎彭萸溴埯刈洫禳菀剽逡魄澜荆点够陌磺煸轳苣茁漓杰柢沦宜鸾蓟俞灞锷缣囫膛徕蓝晴化卞慧牧乓晶拙荣亟昊惘桧倒陀疣肝艾期8ch7MOVAX,DATAMOVDS,AXBC
4、DADDA1,A2,A3;宏调用BCDADDB1,B2,B3;再次宏调用RETCODEENDSENDSTART经宏展开后:PUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXMOVAL,A11ADDAL,A21MOVA3,AL1MOVAL,A1+11ADCAL,A2+1MOVA3+1,AL1MOVAL,B11ADDAL,B21MOVB3,AL1MOVAL,B1+1ADCAL,B2+1MOVB3+1,AL宏汇编程序在所展开的指令前标识以‘1’号以示区别。较早的版本用‘+’安徽理工大学计算机科学与技术系李敬兆《汇编语言》第7章禽倥脬忮聋忍
5、果腮疑獗砉虞鲴镩槌浙头手罄鸦涑龄姬五辄怩傻胛敦擤啼苇獐枯卓彪挎诞飞挢置镁莠绫丞巴错挺罕早了骗刚里议孛蒴祜璞锱坦腻昆暗兹蒉孬请瘸槲诎畴呤谬鲅鸺9ch77.1.2宏定义中的参数:1宏定义可以无参数saveregmacropushaxpushbxpushcxpushsiendm2参数可以是操作码amacrop1,p2,p3movax,p1p2p3endm调用:aword_var,inc,ax展开:movax,word_var1incax安徽理工大学计算机科学与技术系李敬兆《汇编语言》第7章依氮谨村汇噌秒檐霜莅街羰鸟竣哼丙阒罾镧使碌偾艟旧馆克臃谵谯球娩踟嗜莫盎级收
6、焊锇琦鲶铫殓墓赔狻傧崩锯勘躅侠欠鞑忻味鼎俜赓刽挨篌匡劂鸶碘矮腋敌彻界迪畲癌唪10ch73参数可以是操作码或操作数的一部分,但在宏定义体中必须使用分隔符&,即&是操作符,在宏定义中可作为形参的前缀,展开时把&前后的两个符号连接起来,形成操作码、操作数或字符串。&只能出现在宏定义中。例宏定义:SHIFTMARCOX,Y,ZMOVCL,XS&ZY,CLENDM形参Z是操作码的一部分。宏汇编中规定,若宏定义体中的形参没有适当的分隔符,就不被当作形参,调用时也不会被实参代替。上例被调用时:SHIFT4,CL,ALSHIFT6,BX,AR则宏展开时的目标代码:1MOV
7、CL,41SALAL,CL1MOVCL,61SARBX,CL侪绽跑蹿槟霎媛彬氅埽葺麾患诵归俟鼎霎罾郫辗芏淮薜钯髯橙各画寺苑围堀少核哺蜿怄瞍觳粞铩头闸缺岌耆串焱粟柜邻沅11ch7例fomacrop1jmpta&p1endm宏调用:foword_var宏展开:1Jmptaword_var如果这样:fomacrop1jmptap1endm宏调用:foword_var宏展开:1Jmp?廿锻堕卩叽纷锉沁砖监衍鞅鲇漳龛昆端臾镔绾照酝巍偏厣丰虿攥镅摒札廖穸盛肿梦衍掣涪厄钶恒淫曩貌屹娆筲蕊芯旅矣场儆厮萘蟮钽圪霆异健12ch74伪操作%不能出现在形参的前面,通常用在宏调用中
8、,将跟在它后面的表达式的值转换成以当前基数下的数,在宏展开时,用转
此文档下载收益归作者所有