`
zhaole609
  • 浏览: 342795 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

关于汇编中宏的操作

 
阅读更多

1.宏操作符"<>"

在宏调用时, 当实在参数包含空格或逗号等间隔符号时,必须使用"<"和">"作为参数的定界符。例如:

Data      marco   TheData;宏定义

db  TheData

endm;

调用:Data  5,4,3;展开为 db 5

 Data  <5,4,3>;展开为 db 5,4,3

2.宏操作符"&"

    在宏定义时,当形式参数作为标识符或字符串的一部分时,必须使用&作为分隔符

DebugMsg  macro Point,String

               local  SkiData

       push ds

               push  cs

               pop   ds

               lea    dx,Msg&Point&

               mov   ah,9

               int     21h

               pop   ds

               jmp   ds

Msg&Point&     db   'At point &Point&:&String&',0dh,0ah,'$'

SkipData:

       endm

调用:DebugMsg   2,<Invalid   operand>

输出信息:“At point 2:Invalid operand”

被展开发:Msg2   db   'At  point 2:Invalid operand',0dh,0ah,'$'

3.宏操作符 ’ %‘

当宏调用时,若在实在参数中使用"%",则MASM将"%"后常数表达式的值作为参数,而非表达式本身。

GetData     marco   Param

                  mov    ax,Array [Param*2]

 endm

调用:GetData    100+5;展开为mov ax,Array[100+5*2]

调用 :GetData     %100+5;展开为mov ax,Array[105*2]

4.宏操作符"!"

对于包含在"<"和">"这间的文本串,MASM将出现在"!"之后的特殊字符(<,>,%,",',,)作为普通字符处理。若将"!"作为普通字符,则使用"!!"."!"不适用于 包含在引号中的字符串。

DefString    macro  String

                  db          "&String&$"

宏调用:        DefString  <Input a Integer(!>0):>

宏展开:      db         "Input a  Integer (>0):$"

再如:

<20!%!>10!%>;被 汇编为文本串20%>10%

5.宏注释符";;"

在宏定义中,以";;"开始的宏注释,在宏展开时被忽吃略。

分享到:
评论

相关推荐

    大学生《汇编语言》期末复习题题库(含答案).pdf

    首先,基础知识点包括了汇编语言程序开发过程中宏的使用顺序,它包括宏定义、宏调用和宏展开。每一个汇编语言语句通常由四项组成,分别是名字项、操作项、操作数项和注释项。此外,汇编语言程序的执行过程中,涉及到...

    汇编 宏 模块化解决问题

    下面将根据提供的文件信息,详细阐述汇编语言中宏与模块化编程的相关知识点。 #### 宏的作用与用法 宏是一种预处理器指令,它可以被用来定义一个或多个汇编指令的序列,从而简化代码编写过程。宏可以接受参数,...

    哈工大2022CSAPP大作业

    通过分析hello.c的预处理结果,我们可以看到原始代码中宏展开、条件编译等操作的具体效果。 接着是编译阶段,这个过程由编译器完成,将预处理后的代码转换为汇编语言。编译器如GCC会将.i文件转化为汇编代码(.s文件...

    Windows驱动开发基础视频教程.txt

    第十六课 驱动开发中宏与断言的使用 第5章应用程序与驱动程序通信 第二十六课 irp与派遣函数 第二十七课 缓冲区读写操作 第十五课 在驱动中使用结构化异常处理 第二十八课 缓冲区读写操作 第二十九课 模拟文件...

    2021-2022计算机二级等级考试试题及答案No.16826.docx

    13. 计算机能直接识别和处理的语言是机器语言,而非汇编语言。 14. 给定的do-while循环只执行一次,因为!x在x为-1时为真,因此立即退出循环。 15. 宏组有利于数据库中宏对象的管理和组织。 16. 筛选通常会滤除不...

    IAR仿真教程

    - **中断和断点中宏的使用**:使用宏定义简化中断处理代码。 #### 四、使用库模块 **2.6 使用库模块** - **使用库**:利用IAR提供的库模块可以加快开发速度,同时提高代码质量。 - **库管理**:通过IAR XAR ...

    IAR用户手册

    - **方法:** 介绍了如何使用IAR C-SPY Debugger 对程序进行调试,包括设置断点、单步执行、观察变量值等操作。 **2.3 C与汇编混合模式** - **2.3.1 检查调用规则:** - **规则解释:** 说明了在C和汇编混合编程...

    IAR EWARM中文用户手册

    - **中断和断点中宏的使用**:讲解如何在中断上下文中使用宏。 6. **使用库模块** - **使用库**:解释如何利用预编译的库文件来简化开发过程。 #### 五、扩展性与兼容性 - **可扩展的模块化环境**:EWARM允许...

    2021-2022计算机二级等级考试试题及答案No.19109.docx

    9. 教务管理系统是应用软件,而编译程序、操作系统和汇编程序属于系统软件或工具软件。 10. 列表框中被选中的列表项内容可通过访问Text属性获取。 11. 1MB等于1024*1024字节(B)。 12. Pentium IV处理器属于第四代...

    2015 西邮Linux兴趣小组纳新试题

    根据给定的文件信息,我们...通过以上的知识点,我们可以了解到C语言编程中宏定义、数据类型、内存管理、文件操作等基本概念和技术的应用。这些知识点对于IT初学者来说非常重要,是深入学习计算机科学与技术的基石。

    MASM开发参考手册6.1

    - **宏**:讲述了MASM中宏的定义方式、调用机制以及宏在提高代码复用性和可维护性方面的作用。 #### 三、程序员指南 - **全局概念理解**:帮助读者建立汇编语言程序设计的整体框架,包括程序的结构、执行流程等...

    2021-2022计算机二级等级考试试题及答案No.15372.docx

    22. 调用宏组中宏的格式是宏组名.宏名。 23. 设置下拉菜单选项可以使用标记。 24. PowerPoint2000的普通视图左侧窗口显示的是幻灯片缩略图,而非文稿大纲。 25. 查找15天前参加工作的记录准则应该用比较运算符&lt;,即...

    2021-2022计算机二级等级考试试题及答案No.4090.docx

    23. **Java反汇编命令**:javap是Java的反汇编命令,用于查看类文件的字节码。 24. **WITH CHECK OPTION**:在MySQL中,WITH CHECK OPTION子句确保在可更新视图中插入或更新的行满足视图定义的条件。 25. **工具栏...

    C++编程思想008

    C语言通过宏(macro)提供了一种提升效率的方式,它允许在编译前替换文本,从而避免了函数调用的开销,如参数压栈、生成汇编语言的CALL指令、返回参数和RETURNS指令。然而,C++引入了内联函数(inline function),...

    2021-2022计算机二级等级考试试题及答案No.509.docx

    - **知识点**: 宏组有利于数据库中宏对象的管理。 - **应用**: 宏组可以将多个宏组织在一起,便于管理和调用。 ### 22. 数据库系统与文件系统的区别 - **知识点**: 相对于数据库系统,文件系统的主要缺陷之一是...

    rust-book-chinese.pdf

    - **内联汇编**:学习如何使用内联汇编指令。 - **固有功能**:探讨 Rust 中固有功能的使用方法。 - **语言项**:了解 Rust 中特殊语言项的作用。 - **链接进阶**:介绍更高级的链接技术。 - **基准测试**:学习如何...

    WebKit和Chromium源码及原理剖析.pdf

    - 使用IDA反汇编WebCore的二进制文件。 - 利用LLDB动态调试WebCore运行时的状态。 - 分析类的继承结构和成员函数。 #### 第25篇 UIWebView体系结构(三)UIWebDocumentView和WebView - **UIWebDocumentView和...

Global site tag (gtag.js) - Google Analytics