高级汇编语言程序设计(ppt65)-流程管理(编辑修改稿)内容摘要:

M FOR regad, ax,bx,cx,dx push regad ENDM 1 push ax 1 push bx 1 push cx 1 push dx 按参数字符个数重复 FORC 形参 , 字符串 重复体 ENDM FORC regad,dcba pop amp。 regadamp。 x ENDM 1 pop dx 1 pop cx 1 pop bx 1 pop ax 条件汇编 条件汇编伪指令在汇编过程中 , 根据条件决定汇编的语句 IFxx 表达式。 满足 , 汇编分支语句体 1 分支语句体 1 [ ELSE。 不满足 , 汇编分支语句体 2 分支语句体 2 ] ENDIF。 条件汇编结束 第 5章 pdata macro num IF num lt 100。 如果 num 100, 则汇编如下语句 db num dup (?) ELSE。 否则 , 汇编如下语句 db 100 dup (?) ENDIF endm pdata 12。 宏调用 ① db 12 dup(?)。 宏汇编结果 ① pdata 102。 宏调用 ② db 100 dup(?)。 宏汇编结果 ② 例 宏 结 构 的 作 用 宏汇编 、 重复汇编和条件汇编 为源程序的编写提供了很多方便 , 灵活运用它们可以编写出非常 良好的源程序来 汇编系统中有些以圆点起始的 伪指令 ( 如 .startup、 .exit等 ) 实际上是一种宏结构 dstring MACRO string。 定义字符串 db 39。 amp。 stringamp。 39。 ,0dh,0ah,39。 $39。 ENDM mainbegin MACRO dsseg。 设置数据段地址 mov ax,dsseg mov ds,ax ENDM dispmsg MACRO message mov dx,offset message mov ah,09h int 21h ENDM 例题 - 1/3 mainend MACRO retnum。 返回 DOS, 可不带参数 ifb retnum mov ah,4ch。 没有参数 else mov ax,4c00h+(retnum AND 0ffh)。 有参数 endif int 21h ENDM 例题 - 2/3 .model small .stack 256 .data msg1 equ this byte dstring Hello,Everybody !! msg2 equ this byte dstring You see,I made it. .code start: mainbegin @data。 建立 DS内容 dispmsg msg1。 显示 msg1字符串 dispmsg msg2。 显示 msg2字符串 mainend。 返回 DOS end start 例题 - 3/3 将程序分段 、 采用子程序或宏结构都是进行模块化程序设计 本节介绍开发大型程序时采用的方法: 源程序文件的包含 目标模块连接 子程序库 模块化程序设计 例题 将键盘输入的数据按升序输出 把源程序分放在几个文本文件中 , 在汇编时通过包含伪指令 INCLUDE结合成一体 INCLUDE 文件名  可将常用的子程序形成 .ASM汇编语言源文件  可将常用的宏定义存放在 .MAC宏库文件中  可将常量定义 、 声明语句组织在 .INC包含文件中 例 ① 宏库文件 ② 主程序文件 ③ 子程序文件 源程序文件的包含 1 dispchar macro char。 显示 char字符 mov dl,char mov ah,2 int 21h endm dispmsg macro message。 显示 message字符串 mov dx,offset message mov ah,9 int 21h endm include ... dispmsg msg1。 提示输入数据 mov bx,offset buf call input。 数据输入 cmp cx,0 je start4。 没有输入数据则退出 mov count,cx ...。 显示输入的数据 ...。 数据排序 ...。 显示经排。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。