欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    【教学课件】第8章高级汇编语言技术.ppt

    • 资源ID:5679241       资源大小:358.47KB        全文页数:39页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【教学课件】第8章高级汇编语言技术.ppt

    第8章 高级汇编语言技术,基本内容,宏汇编重复汇编条件汇编,8.1 宏汇编,宏指令的定义、调用和展开 宏操作符 局部符号伪指令 宏嵌套 宏库的建立与使用,8.1.1 宏指令的定义、调用和展开,宏定义 宏定义用一组伪操作实现:宏名 MACRO 形参列表(宏体)ENDM,SHRT MACRO MOV CL,3 SAR DL,CL ENDM,例:用宏指令实现将DL寄存器右移3位,注意:宏定义可出现在源程序的任何位置,但必须出现在宏调用之前,也就是必须先定义后调用。,宏调用 经过宏定义后,宏指令就可以在源程序中调用,即宏调用。宏调用的格式是:宏名 实参1,实参2,实参3,,宏展开,当汇编程序对源程序进行汇编时,汇编程序 每个宏调用作宏展开。宏展开就是用宏体代源程序中的宏名,用实参取代宏定义中的形参。,例:用宏指令定义两个字节数据相加,并存放到一个单元中,并作宏调用和宏展开。,ADDB MACRO AD1,AD2,RESULT;宏定义 PUSH AX MOV AL,AD1 ADD AL,AD2 MOV RESULT,AL POP AX ENDM,ADDB 5CH,43H,DL;宏调用 1 PUSH AX;宏展开1 MOV AL,5CH1 ADD AL,43H1 MOV DL,AL1 POP AX,8.1.2 宏操作符,操作符&操作符%操作符操作符!,操作符&,操作符&在宏定义中使用时可以在形参之前,也可 以出现在形参之后,宏展开时将&前后两个符号合并成 一个符号,该符号可以是操作码、操作数,也可以是字 符串。,例:宏定义:DSEG MACRO NUM,LETTER LAS&NUM DB WRITING&LETTER ENDM宏调用:DSEG 1,ERROR DSEG 2,RIGHT宏展开:1 LAS1 DB WRITINGERROR 1 LAS2 DB WRITINGRIGHT,在这里,第一个参数合并成标号,第二个参数用于字符串中。,操作符%,汇编程序将操作符%后的表达式的值而不是表达式文本本身作为当前值,宏展开时,用该值取代形参,%操作符不允许出现在形参前面。,例:,宏定义:SARF1 MACRO CON1,DECT MOV CL,CON1 S&DECT AL,CL ENDM SARF2 MACRO CON2 CNT=CON2 SARF1%CNT,AL ENDM,宏调用:SARF2 2 SARF2 4,宏展开:1 MOV CL,2 1 SAL AL,CL 1 MOV CL,4 1 SAL AL,CL,操作符,汇编程序将操作符括起的内容作为一个字符串处 理。宏调用中,实参如果含有空格、逗号等间隔符,就用 操作符将实参括起,作为一个单一完整的实参。若将 一个特殊字符作为实参,也可以用该操作符处理,如&表示一个字符“&”,而不是操作符。,例:宏定义:HELLOW MACRO DSG,SENTENS DSG DB&SENTENS ENDM宏调用:HELLOW MASG,HOW ARE YOU HELLOW MASG,HOW ARE YOU宏展开:1 MASG DB HOW ARE YOU 1 MASG DB HOW,操作符!,汇编程序将操作符!后的字符只作字符含义进行处 理。如“!%”表示%只作百分号使用。在宏调用时,为使实 参中的一些特殊字符作一般字符处理,就要在其前加上该 操作符。,例:宏定义:HELLOW MACRO DSG,SENTENS DSG DB&SENTENS ENDM 宏调用:HELLOW!%(2+9-1)宏展开:1 DB%(2+9-1),8.1.3 局部符号伪指令,汇编程序中提供伪指令LOCAL,解决标号的多重定义 问题。伪指令LOCAL格式:LOCAL 标号表 在每次宏展开时,汇编程序对LOCAL伪指令说明的 标号或变量用唯一的符号“?XXXX”(XXXX表示0000-FFFF的十六进制数)代替。,例:宏定义:ROTAE MACRO NUM LOCAL NEXT MOV CL,NUM SAR AL,CL CMP AL,9 JNBE NEXT NEXT:AND AL,0FH ENDM宏调用:ROTAE 1 ROTAE 2,宏展开:1 MOV CL,1 1 SAR AL,CL 1 CMP AL,9 1 JNBE?0000 1?0000:AND AL,0FH 1 MOV CL,2 1 SAR AL,CL 1 CMP AL,9 1 JNBE?0001 1?0001:AND AL,0FH,须要说明的是,LOCAL伪指令只用于宏定义体内,且必须是宏定义伪指令MACRO之后的第一条语句,在MACRO和LOCAL伪指令之间不允许有注释和分号标志。,如果伪指令LOCAL后有多个标号,如:LOCAL NEXT1,NEXT2宏展开时,汇编程序分别用?0000、?0001取代第一次宏调用中NEXT1、NEXT2。用?0002、?0003分别取代第二次宏调用中的NEXT1、NEXT2,依次类推。,宏定义中使用宏调用例:宏定义SHRFQ中使用宏调用,SHRF MACRO X MOV CL,X SAR AL,CL ENDMSHRFQ MACRO Y,Z,RESU PUSH AX PUSH CX,MOV AL,Z SHRF YAND AL,ZMOV RESU,ALPOP CXPOP AXENDM,8.1.4 宏嵌套,宏定义中定义宏指令例:宏定义SHEAT中定义宏指令INMOV,SHEAT MACRO INMOV,OPTR INMOV MACRO X,Y,RESULT PUSH AX PUSH CX MOV CL,X MOV AL,Y S&OPTR AL,CL MOV RESULT,AL POP CX POP AX ENDM ENDM,8.1.5 宏库的建立与使用,为了节约编程时间和减少错误,我们可以将常用的 宏定义集中放在一个文件中,这个文件称为宏库。调用 宏库中的宏时,只需在源文件前面用伪指令INCLUDE将 宏库加入到自己的源文件中。,8.2 重复汇编,重复汇编指源程序中用重复伪指令定义需要重复 的语句序列,汇编程序对该语句序列进行多次汇编。伪指令REPT 伪指令IRP 伪指令IRPC,伪指令REPT,格式:REPT 表达式(重复语句序列)ENDM 其中,表达式包含的项必须有定义,不能包含外部 变量,且必须可求出常数值,表达式的值给出重复块的 重复次数。,例:将0-50中5的倍数存放到10个字节单元中,N=0 REPT 10 N=N+5 DB N ENDM汇编产生如下结果 1 DB 5 1 DB 10 1 DB 15 1 DB 50,伪指令IRP,格式:IRP 形参,实参1,实参2,(重复语句序列)ENDM 其中实参个数确定重复汇编的次数,重复汇编语句序列时,依次用尖括号中的实参取代形参。,例:IRP R,A,B,C,D PUSH R&X ENDM汇编期间得到如下结果:1 PUSH AX 1 PUSH BX 1 PUSH CX 1 PUSH DX,伪指令IRPC,格式:IRPC 形参,字符串(重复语句序列)ENDM 与伪指令IRP 相似,但实参必须是字符串,其中字符串中字符个数确定重复汇编的次数,重复汇编语句序列时,依次用字符串中的一个字符取代形参,直到用完字符串中的所有字符。,例:IRPC S,ABCDEFGHI DB S ENDM汇编期间得到如下结果:1 DB A 1 DB B 1 DB I,8.3 条件汇编,条件汇编的作用是使汇编程序能根据条件有选择的对程序段进行汇编。源程序中依需要设定条件,汇编时汇编程序根据条件是否满足,对该段程序进行汇编或不进行汇编,以得到所需的目标代码。IF和IFE IFB和IFNB IFIDN和IFDIF,IF和IFE,IF 表达式的值不为0,则满足条件,即条件为真,其表达式的值应该是一个常数。IFE 表达式的值为0,则条件为真。,例:宏MOVSN判断参数N是否为0,如果不为0,则将N右移两位,否则将AL寄存器置0。,MOVSN MACRO N IF N MOV AL,N MOV CL,2 SAR AL,CL ELSE MOV AL,0 ENDIF ENDM,IFB和IFNB,伪指令IFB和IFNB测试宏定义中的参数,如果参数是空格,则IFB条件为真。否则IFNB条件为真。,例:宏MOVSM在汇编时,测试参数HANDLE的值,判断对MOV BX,HANDLE或 MOV BX,1 进行汇编。,MOVSM MACRO BYTE,HANDLE MOV AH,42H MOV AL,00 IFNB HANDLE MOV BX,HANDLE ELSE,MOV BX,1 ENDIF MOV CX,00 MOV DX,BYTE INT 21H ENDM,IFIDN和IFDIF,伪指令IFIDN和IFDIF比较字符串参数1和字符串参数2的值是否相等,如果相等则IFIDN条件为真,否则IFDIF条件满足。,例:宏FILEOP 将参数OPREATE作为判断条件。,FILEOP MACRO FILENAME OPREATE IFIDN OPREATE,CREAT MOV AH,16H MOV DX,SEG FILENAME MOV DS,DX MOV DX,OFFSET FILENAME INT 21H ENDIF,IFIDN OPREATE,ENDSS MOV AH,10H MOV DX,SEG FILENAME MOV DS,DX MOV DX,OFFSET FILENAME INT 21H ENDIF ENDM,

    注意事项

    本文(【教学课件】第8章高级汇编语言技术.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开