第七章 宏指令共26页文档
WORD宏命令

WORD宏命令1、为宏命令指定快捷键。
在WORD中,操作可以通过菜单项或工具栏按钮实现,如果功能项有对应的快捷键的话,利用快捷键可以快速实现我们需要的功能。
如最常见的CTRL+O、CTRL+A等等。
WORD已经为很多功能指定了快捷键,可以大大提高WORD的操作速度,比用鼠标操作快捷很多。
而我们自己编辑或者录制的宏,可以用菜单项操作完成,也可以为这些命令设置按钮,通过工具栏按钮操作,如果为这些常用的宏指定合适的快捷键,会为我们提供很大的便利。
如何为功能项设置快捷键或修改功能项已有的快捷键,需要对WORD进行自定义设置。
在WORD主界面中,点击“工具”菜单下的“自定义”菜单项,在“自定义”对话框中,点击“键盘”,如下图所示:2、举例说明WORD打开状态下,按ALT+F11,打开VBA编辑器,粘贴如下代码Sub 英文引号转中文双引号()'Selection.Find.ClearFormattingSelection.Find.Replacement.ClearFormattingWith Selection.Find.Text = """".Forward = True.Wrap = wdStop.MatchByte = TrueEnd WithWith SelectionWhile .Find.Execute.Text = ChrW(8220).Find.Execute.Text = ChrW(8221)WendEnd WithEnd Sub保存后,再打开“自定义”等命令可以出现下图:这时按你要指定的快捷键,一一般要跟CTRL、ALT和SHIFT结合,可选取一个两个或者三个,再加上某一个字母。
上例我为选定的宏指定的快捷键为ALT+",因为"与'是在同一键上,实际操作是按三个键。
如果“目前指定到”项为[未指定],选择是保存常规模板“NORMAL”还是本文档,点“指定”,然后关闭。
宏命令教学

2.4.3宏命令教学宏命令是一种在计算机程序中定义的代码片段,可以在程序中进行重复使用。
宏命令有助于简化代码的编写和管理,提高代码的可读性和可维护性。
以下是一个宏命令的教学示例:1. 定义宏命令:在程序中选择一个合适的位置,定义一个宏命令。
宏命令通常以 "#define" 关键字开始,后面是宏命令的名称和具体的代码片段。
例如:```c#define MAX(a, b) ((a) > (b) ? (a) : (b))```这个宏命令定义了一个比较两个数大小并返回较大值的函数。
可以在程序的任何地方使用宏命令 MAX(a, b) 来获取较大的数。
2. 使用宏命令:在程序中需要比较两个数大小的地方,可以使用宏命令 MAX(a, b)。
例如:```cint x = 5;int y = 7;int max = MAX(x, y);```在这个例子中,宏命令 MAX(a, b) 被用来比较变量 x 和 y 的大小,得到较大的数赋值给变量 max。
3. 注意事项:在使用宏命令时需要注意一些事项:- 宏命令中的参数应该用括号括起来,以避免运算优先级问题。
- 宏命令不是真正的函数,它只是一个文本替换的过程。
因此,在宏命令中使用的参数应该是简单的表达式,避免出现副作用和错误。
- 宏命令中的代码片段不需要使用分号结尾,因为宏命令是单个的语句。
总结:宏命令是一种在程序中定义的代码片段,可以在程序中重复使用。
它是通过文本替换的方式工作,并提高了代码的可读性和可维护性。
使用宏命令需要注意一些规则,并确保它们与实际需求相符合。
宏指令编程

第七章 宏指令编程 第一节A 类宏指令一、教学目的与要求1.了解宏指令的概念、种类、特点及应用场合。
2.熟记A 类宏指令的书写格式。
3.掌握宏指令的一般编程思路。
4.在数控机床上能熟练完成宏程序相关操作。
5.能应用宏指令完成相应零件的编程与加工。
6.能正确选择硬质合金刀具的切削用量。
二、教学重点与难点1. 宏程序编程的思路与步骤。
2. 宏指令程序的编制。
三、实例导入如何用A 类宏程序完成如图7—1所示零件的加工。
四、理论讲授在数控加工中把除了直线与圆弧之外,轮廓外形可以用数学表达式的形式给出的曲线X称为非圆方程曲线,其表达式可以用直角坐标、极坐标、参数方程等多种形式给出。
还有些轮廓形状是通过实验或测量的方法得到的,这些通过实验或测量得到的数据,在图样上是以坐标点的表格形式给出,我们把这类轮廓曲线称为列表曲线。
为完成这些特别曲线的加工,FANUC系统提供了具有相应功能的用户宏指令。
采纳这些方法不但可以完成上述曲线的编程而且还有利于程序的模块化。
用户宏程序是FANUC数控系统及类似产品中的特别编程功能。
所谓用户宏程序其实质与子程序相似,它也是把一组实现某种功能的指令,以子程序的形式事先存储在系统存储器中,通过宏程序调用指令执行这一功能。
在主程序中,只要编入相应的调用指令就能实现这些功能。
一组以子程序的形式存储并带有变量的程序称为用户宏程序,简称宏程序;调用宏程序的指令称为“用户宏程序命令〞,或宏程序调用指令。
宏程序与一般程序相比较,一般程序的程序字为常量,一个程序只能描述一个几何形状,所以缺乏灵活性和适用性。
而用户宏程序本体中可以使用变量进行编程,还可以用宏指令对这些变量进行赋值、运算等处理,从而可以使用宏程序执行一些有规律变化的动作。
用户宏程序分为A、B两种。
一般地,在一些较老的FANUC系统〔如FANUC-0MD〕中采纳A类宏程序,而在较为先进的系统〔如FANUC-OI〕中则采纳B类宏程序。
汇编语言入门教程-第七章 宏定义

宏定义:
第七章第一高章级汇基编础语知言识技术
例 宏定义可允许递归调用,此时条件伪操作可用来结束宏递归。
宏指令POWER可以用来实现X和2N相乘。这只需对X左移N次即可实现, 可以设COUNT为递归次数的计数值,当该数与N相等时就可结束遇归调用。
汇编语言入门教程-第 七章 宏定义
宏汇编
宏——具有宏名的一段汇编语句序列 ——宏定义时书写
宏指令——这段汇编语句序列的缩写 ——宏调用时书写
宏展开——宏指令处用这段宏代替的过程 ——宏汇编时实现
宏的参数功能强大,颇具特色 配合宏,还有宏操作符和有关伪指令
第七章第一高章级汇基编础语知言识技术
其中哑元表给出了宏定义中所用到的形式参数 (或称虚参),每个哑元之间用逗号隔开
end start
谢谢
第七章第一高章级汇基编础语知言识技术
重复次数由自变量表中的自变量个数 来确定。自变量表必须用尖括号括起, 它可以是常数、符号、字符串等
第七章第一高章级汇基编础语知言识技术
第七章第一高章级汇基编础语知言识技术
第七章第一高章级汇基编础语知言识技术
第七章第一高章级汇基编础语知言识技术
第七章第一高章级汇基编础语知言识技术
第七章第一高章级汇基编础语知言识技术
第七章第一高章级汇基编础语知言识技术
第七章第一高章级汇基编础语知言识技术
第七章第一高章级汇基编础语知言识技术
汇编程序把跟在%之后的表达 式的值转换成当前基数下的数, 在展开期间,用这个数来取代 哑元。
宏操作符总结
• ;;——宏注释符,用于表示在宏定义 中的注释。采用这个符号的注释, 在宏展开时不出现
第7章 宏

例:继续改进例【7-3】,用户名、密码均正 确,进入系统总界面。如果输入3次均不正确, 则自动退出系统。并将登录界面设置为启动 窗体。 提示:设置一个计数器。
[用户名]=“admin” and [密码]=123
7.2.4
设置宏的操作参数
当向宏中添加了某个操作之后,就可 以在“宏”设计窗口的下部设置于这个操 作相关的参数。设置方法见课本P179。
操作的条件宏。
宏指令与宏编程
一条宏指令通常由操作代码与操作参数 组成。宏程序以对话填表的方式产生,以表 格的形式保存。
宏指令系统是指由数十个指令构成的一 种简单的编程中介语言。用这种指令系统记 录的操作步骤就是宏。编制这样的简单程序 叫做宏编程。
宏的简单举例
7.1.2
设置宏操作
1. “宏”的设计窗口(见课本P176图7.3)
说明:DLookUp函数的功能是从指定记录集里检索特 定字段的值。此处的含义是:在[教师1]中查找与当前 输入的Form.[教师id]相同的[教师id],如果DLoopUp 的返回值不为Null,则执行MsgBox操作,即提示教师 id有重复!
第2步:②设置教师id文本框的“更新前”事件为: 教师信息核查.教师id核查;
常用事件集(详见P320附录E)
对象事件 说 明
控件名.更改
控件名.更新前 控件名.更新后
控件数据每一字符的改变
控件数据整体将改变,光标将 离开原对象 控件数据整体改变,光标已离 开原对象 通过键盘或鼠标使控件成为当 前对象 控件不再是当前对象 按鼠标、放鼠标
控件名.进入
控件名.退出 控件名.单击
【例7.2】设计一个简单的学生学籍管理系统, 通过宏实现系统基本功能的连接和窗体转换。
第7章 宏指令

宏指令#include和 宏指令#include和#define #include
语言中, 在C语言中,宏指令 语言中 宏指令#include和#define分别表示了包含 和 分别表示了包含 和替换作用。其中,宏指令#include在实例程序中,常被用 在实例程序中, 和替换作用。其中,宏指令 在实例程序中 户用于将头文件等相关的源文件包含到实例程序中。 户用于将头文件等相关的源文件包含到实例程序中。而宏指 的作用则是对一些比较复杂的字符串、 令#define的作用则是对一些比较复杂的字符串、计算表达式 的作用则是对一些比较复杂的字符串 等进行替换,以便简化这些复杂标识符的编写。 等进行替换,以便简化这些复杂标识符的编写。
7.1
#include介绍 #include介绍
宏指令#include是预编译包含指令。在实例程序编写时 是预编译包含指令。 宏指令 是预编译包含指令 ,用户可以使用该指令将所需的头文件或者其他源文件包含 到实例程序中,而成为实例程序的一部分。 到实例程序中,而成为实例程序的一部分。用户使用该指令 的另一个目的还在于简化实例程序的编写, 的另一个目的还在于简化实例程序的编写,增强代码的可读 性。
实例程序运行结果
7.4
小结
在本章中,主要向用户讲解了关于预编译指令 在本章中,主要向用户讲解了关于预编译指令#include 的作用、 和#define的作用、使用方法及其实例代码的编写方法等。 的作用 使用方法及其实例代码的编写方法等。 其中,预编译指令#include和#define的作用和使用方法 其中,预编译指令 和 的作用和使用方法 是本章中的重点, 是本章中的重点,需要用户熟悉其具体的编写规范和编写方 而预编译指令#define重定义数据的编程方式是本章中的 法。而预编译指令 重定义数据的编程方式是本章中的 难点, 难点,要求用户能够熟练地使用该预编译指令对任何类型的 数据进行重新定义。 数据进行重新定义。
第七章 宏指令共26页PPT资料

宏调用:
Multiply cx,var,xyz[bx]
宏展开:
1 push dx 1 push ax 1 mov ax,cx 1 imul var 1 mov xyz[bx],ax 1 pop ax 1 pop dx
例7.3:求绝对值
宏定义:
absol next:
MACRO oper LOCAL next cmp oper,0 jge next neg oper
PUSH-TAB MACRO K PUSH TAB+K ENDM
宏调用: I=0
REPT 5 PUSH-TAB %I I=I+2 ENDM
宏展开:
2 PUSH TAB+0 2 PUSH TAB+2 2 PUSH TAB+4 2 PUSH TAB+6 2 PUSH TAB+8
例7.9:
ARRAY LABEL WORD
子程序sub1
宏调用过程图示
宏调用与子程序调用的区别总结:
子程序: 优点:模块化,节省内存,可被多次调用,编程效率高。 缺点:额外开销大(参数传递),增加了执行时间。适 用于功能代码较长、调用比较频繁、参数较少的情况。 宏调用: 优点:参数传送简单,执行效率高。 缺点:不节省空间,适于子功能代码较短、传送参数 较多的情况。
第7章 高级汇编语言技术
◆ 宏汇编 ◆ 重复汇编 ◆ 条件汇编
§7.1 宏汇编
宏:源程序中一段有独立功能的程序代码。 宏指令:用户自定义的指令。在编程时,将多次使用的功能用
一条宏指令来代替。
汇编程序:指令 伪指令(伪操作) 宏指令
一、宏定义
宏定义:
macro_name MACRO [ 哑元表 ] ;形参 /实参
第7章-宏

第3步: 设置事件驱动
1. 打开命令按钮的属性 2. 在“事件”的“单击”
中选择宏“验证密码”
条件宏
[实例2] 题目要求: 1)建立窗体: “数据浏览—面板” 2)利用“选项按钮组”提供选择 3)单击任一选项,打开相应窗体
第1步: 创建宏“信息查询”
1. 单击“新建”按钮,宏 名中写入: 教师
2. 在“操作”中选择 “OpenForm”在下 框的窗体名称中选择 “教师信息快速查询”
3. 同理,分别建立“学 生”、“成绩”宏。
4. 保存时为宏组命名: “信息查询”
第2步: 设置事件驱动
在窗体“信息查询” 的属性中选“单击事 件”调用宏: 信息查 询-教师,(使得打 开窗体“教师信息快 速查询”)
7.4 利用宏制作菜单
利用宏制作菜单步骤
1、为每个“一级”菜单建立一 个宏组,宏组中包括二级菜 单的所有菜单项;
2、建立主菜单宏,宏操作是一 组“AddMenu”,用来挂 接二级菜单(即上一步所建 的多个宏组);
3.把菜单挂接到窗体上。
1.为每个菜单建立“宏组”
分别建立三个宏组 “学生信息”
“教师信息” “系统工具”
日历
计算
其他——子菜单
2.建立“主菜单”的宏
建立“主菜单”的宏 (将每个宏组与“主菜单”宏联系)
3.将主菜单挂接到主界面上
将应用系统“打包”生成MDE文件
[工具]→[数据库实用工具] →[生成MDE文件]
7.5 将宏转换为VB程序代码
Access 能 自 动 将 宏 转 换 成 VBA(Visual Basic)程序代码。
宏 指 令

宏指令宏指令是汇编功能的另一种扩充。
在我们编写程序时,常常会遇到这种情况:一些程序段它们的结构相同,但在不同情况下使用的参数不同,这时可以把那变化的参数定义为形参,采用宏指令的方法来解决。
在汇编时,汇编程序将填入相应的实参,把它们逐条汇编并生成到相应的程序中去。
一个宏指令是汇编语句的一个代码段,其中可以包含有形参,所谓形参是指它的值由引用宏指令时定义,在编写宏指令时它仅仅是一个符号而已。
每个宏指令都有一个宏指令名,在程序中可以通过引用它的名字以及给定所需要的参数使用它。
宏指令通在汇编语句的命令中使用,参数出现在参数部分中,宏指令每次在程序中引用时,通过实参对形参的替换,使程序中宏指令中的形参获得实际值。
一个宏指令必须在它的第一次使用之前被定义。
通常,所有的宏指令的定义都集中在程序的首部,宏指令的定义格式如下:宏指令名MACRO形参表(宏指令体)ENDMMACRO和ENDM语句是宏指令定义的标志,它们指出了宏指令的首部和尾部。
每个MACRO语句必须有一个匹配的ENDM语句。
这些语句不使用标号。
宏指令名按照汇编程序中的其它符号名约定,宏指令名被加到汇编程序符号表中,并赋给一个宏指令类型。
因而它必须有唯一的名字。
其名字将包括在汇编程序列表输出的汇编符号清单中。
形参表是在宏指令定义中使用的形参集合。
这些参数用符号表示,且仅仅在宏指令定义中使用,而不被加到汇编符号表中。
它们只能在宏指令中的代码块中使用。
各个形参在参数表中应该用逗号隔开。
宏汇编中,每个宏指令最多可支持40个参数。
但是,参数表必须与MACFO指令在同一行上,由于每一代码行最大长度为80个字符,因形参的数量也受这个条件限制,参数表是任选的,所以一个宏指令也可以是无参的。
宏指令是程序块,它可以是任何汇编语言或伪指令,但由于汇编程序不支持嵌套的宏指令,因此,在宏指令体内不能再使用宏指令或对其他宏指令进行定义。
形参可以在代码段语句的任何域中使用,包括标号、命令、参数和注解。
ACCESS实例教程--宏的操作(第7章)

5
(4)窗口操作 Maximize命令,最大化窗口。 Minimize命令,最小化窗口。 Restore命令,将最大化或最小化窗口恢复至初始大小。 (5)运行操作 RunCommand命令,运行Access指定的内置语句。 RunSQL命令,运行指定的SQL语句。 RunMacro命令,运行指定的宏。 (6)提示操作 Beep命令,使计算机发出“嘟嘟”声。 MsgBox命令,显示消息框。
3
7.1.1 宏窗口
宏对象在宏窗口中建立。宏窗口分为上、下两部分,上边 是设计网格,用来添加宏操作。下边是操作参数表,用来设置 每个宏操作的参数。宏操作不同,相对应的参数表也不同。
4
7.1.2 常用宏操作
(1)打开数据库中的对象 OpenTable命令,打开数据表。 OpenForm命令,打开窗体。 OpenReport命令,打开报表。 OpenQuery命令,打开查询。 (2)关闭数据库对象和退出Access Close命令,关闭指定的数据库对象。 Quit 命令,退出Access。 (3)设置值和刷新值 SetValue命令,设置属性值。 Requery命令,刷新控件数据。
——宏的操作(第7章) 宏的操作( 宏的操作 章
1
本章要点: 本章要点:
1,建立宏
2,建立宏组 3,建立条件宏 4,将宏附加给控件
2
7.1
认识宏对象
宏是一系列操作的集合,每个操作都自动完成特 定功能,Access提供宏对象的目的是让操作能自动执 行。 宏对象有3种类型:宏、宏组、条件宏。其中,宏 是操作的集合,宏组是宏的集合,条件宏是带条件的 操作序列,只在条件成立时才执行。
22
7.3 宏的编辑与调试
7.3.1 宏的编辑
1.更改宏组中的宏名和更改条件表达式 直接在宏名或条件表达式处输入新内容即可。 2.更换宏的操作 单击操作框的向下箭头,在系统提供的52个操作中重新选一个。 3.更换操作的参数 单击参数框的向下按钮,在系统提供的参数项中重新选一个。 4.插入行与删除行 在设计网格中选定一行,单击插入行按钮,在当前行上方插入一 个空行。选定一行,单击删除行
宏命令完全手册

宏命令完全手册一:基础教程1.什么是宏命令?玩过EQ的都知道一点宏的知识,比如组队时用来告诉队友你的行动,告诉目标等。
最简单的比如puller 常用的:/v %t过来了,大家集中火力。
法师常用的:/v 我要催眠%t,大家不要打醒他这些宏个性鲜明,是EQ的一大乐趣之一。
然而EQ毕竟是N年前的游戏,宏也比较简单,和它比起来。
WOW的宏就复杂和强大的多了。
它的函数就有上千种,如果都掌握,能实现许多匪夷所思的功能。
一个宏可以完成一个相对比较复杂的命令.比如战斗中发布命令,如果打字当然不算麻烦,但在战斗中却很要命.浪费了时间和生命.一个简单的宏便可以用一个键来完成这一切.2.宏命令的设置流程:首先,回车,再敲/MACRO。
看见了吧?会弹出一个窗口,上面有New(新建宏命令)和Complete (完成宏命令)两个按键。
点New,又会弹出一个窗口,哇,花花绿绿的,里面包括了WOW几乎所有的技能图标,随你喜欢,随便选一个!它就是你设置的宏命令的图标了,给它取个名字吧!方便你用的时候好找。
然后回到第一个窗口,在它上面有一个输入菜单(别告诉我找不到…它可是占了这个窗口的一半多…)在里面输入特定的内容,然后点Complete。
接下来你要做的就是把这个代表你宏命令的图标用鼠标左键拉到快捷栏里,想怎么用就怎么用…3.下面就是怎样设置宏的内容了,简单的设置大家可以看我们网站上"基础"篇的宏介绍.相信很多人都知道WOW中的斜杠"/"和表情命令.宏可以将这些命令按照自己对条件的设置串联起来,比如:/Kneel是让你跪下来的动作而/say就是最基础的对话动作我们现在用一个宏把他们串起来:第一行内容:“/Kneel”第二行内容:“/sa y 如果你不嫁给我,那么我就一辈子不起来…” ”这样你的人物就会先下跪再说:"如果你不嫁给我,那么我就一辈子不起来…"宏可以应用所有WOW中已经定义了的斜杠"/"和表情命令,更要命的是,宏甚至可以应用人物的魔法和技能,只需要在宏的定义过程中应用"/cast"命令,下面是已知的一些常用命令:/Assist 这是个援助进攻的命令。
第7章 宏

7.1 宏的基本概念
宏(Macro)是由一个或多个操作组成 的集合,其中每个操作都实现特定的功 能。宏是Access 2003的七大对象之一, 它的主要功能是把与数据库有关的操作 集中起来了,将其衍变而成一组操作命 令的集合。一旦创建了宏,此后使用时 只需调用这个宏,就能顺序地执行其中 所包含的各条命令,从而简化了数据库 操作的流程,提高数据处理能力。
例7.2利用拖曳数据库对象的方法来添 加宏操作,创建一个名为“记录定位宏 2”的新宏,要求新宏的功能与例7.1中的 宏一样。
7.2.2 创建宏组
如果有许许多多的宏,那么将相关的宏分到 不同的宏组中有助于更方便地对数据库进行 管理。所谓宏组,是将相关的一系列宏集中 组织在一起而构成的集合。宏组中的宏是相 互独立的,可以单独运行。 例7.3 创建一个名为“宏组示范”的宏组 (如图7-23所示),要求在这个宏组中设计包 含三个宏,分别是“学生表”宏、“系统封 面窗体”宏和“学生信息报表”宏。
在“单步执行宏”对话框中包含了丰富的提示信息, 包括了“宏名”、“条件”、“操作名称”和“参数” 这个四部分,同时对话框中的文字显示着将要执行的 下一个宏操作的具体情况。另外,在“单步执行宏” 这个对话框中还包含了“单步执行”、“停止”和 “继续”这三个按钮,作用如下: 单击“单步执行”按钮,将执行当前对话框中所显示 的宏操作,同时暂停在准备执行下一个宏操作之前; 单击“停止”按钮,将终止当前宏的运行,同时自动 关闭“单步执行宏”对话框; 单击“继续”按钮,将继续执行中断后的其余宏操作, 直到宏运行完毕为止。
7.3.3从另一个宏或者在Microsoft Visual Basic过程中运行宏 7.3.4为响应窗体、报表或控件上发 生的事件而运行宏或事件过程
宏指令使用文档

(C) 多重分支选择 Select Case 语句 Select Case TestExpression [Case expression –n [starements-n] ]…… [Case Else [elsestatements ] ] End Select
语法说明: TestExpression 必要 ,任何数值或字符表达式
Start
必要,Counter 的初值
End
必要,Counter 的终值
Step
可选 ,Counter 的步长,如果没有指定,则缺省为 1,只能是数值
Statements 可选 ,For 和 Next 之间的语句块,该语句块将执行指定的次数 b) While – Wend 语句
由条件控制的循环,条件放置于循环顶部逻辑表达式值为 TRUE 或 FALSE,当指 定的条件为 TRUE 时,执行循环体中的语句块 While condition [statements] Wend 语法说明 Condition 必要,逻辑表达式,其计算结果为 TRUE 或 FALSE,condition 为 TRUE
送出去数据的首址 Plc 地址类型和编码方式 Plc 地址偏移 数据项数
五:宏指令操作说明 1:宏指令程序的编写分三步进行, 第一步:在 EB500 主界面中启动宏指令功能模块的第一个对话框(MacroControlDlg)
第 二 步 : 在 MacroControlDlg 对 话 框 中 进 行 宏 指 令 间 的 拷 贝 , 删 除 , 编 辑 , 调 用 MacroWorkSpaceDlg 对话框进行宏指令源程序的编辑,
(False) (2:)表达式: 条件表达式的值为零值即为假,代表条件不成立, 条件表达式的值为非零值即为真,代表条件成立
第七章 宏汇编

第七章
宏汇编
7. 汇编运算符的优先级 见表7.2(见书第160页)所示
第七章
宏汇编
7.2 伪指令
伪指令没有对应的机器指令,它不是由86系列CPU 来执行,而是由MASM-86识别,并完成相应的功 能。它在很大程度上规定了MASM-86的性能,因 此也可称之为汇编命令。MASM-86中允许使用的 伪指令相当丰富,必须搞清楚这些伪指令的功能及 其用法,才能编制出高质量的汇编语言源程序。 MASM-86中使用的伪指令可分成14类,下面逐一 进行介绍。
第七章
宏汇编
(4) SIZE求为符号名分配的字节数 格式:SIZE〈符号名〉 为符号名定义的数据项必须是用重复格式DUP()定义 的。 (5) LENGTH求为符号名分配的项数 格式:LENGTH〈符号名〉 为符号名定义的数据项必须是用重复格式DUP()定义 的。 SIZE〈符号名〉=(LENGTH〈符号名〉)*(TYPE〈符 号名〉)
1. 常数 常数是没有任何属性的纯数值。在汇编期间,它的 值已能完全确定,且在程序运行中,它也不会发生 变化。它可以有以下几种类型: (1) 二进制数:以字母B结尾的,由0和1组成的数字 序列,如01011010B。 (2) 八进制数:以字母O或Q结尾的0~7数字序列, 如723Q,35O。
第七章
D1
41 42 42 41
A B B A
D2
(60d)
D3
第七章
宏汇编
例如: A1 DB 3dup (0, 2dup (1,2), 3)
则汇编结果如图:
(图见下页)
第七章
宏汇编 00 01 02 01 02 03 00 01 02 01 02 03 00 01 02 01 02 03
第七章宏汇编

;BEN-NN→BEN
MOV
INT ENDM
AH,2
21H ;显示
第七章 高级汇编语言技术
§7.1.4 在宏定义内使用宏
请见书
§7.1.5 列表伪操作
请见书
第七章 高级汇编语言技术
§7.1.6 宏库的建立
编程中将经常使用的,带有通用性的宏定义集中放 在一个单独的磁盘文件——宏指令库(宏库)中,既可 以减少程序的输入量,又方便程序修改。
格
式:
LOCAL 标号名表
第七章 高级汇编语言技术 CMPDISP MACRO LOCAL MOV NN LAST,NEXT DL,0 ;DL清0
LAST:
CMP
JC INC
BEN,NN
NEXT DL
;比较
;BEN < NN 转 ;DL加1
SUB
JMP NEXT: ADD
BEN,NN
LAST DL,30H
它不影响宏库的内容,只是在调用时不起作用
第七章 高级汇编语言技术
章节内容安排
§7.1 宏汇编
§7.2 重复汇编
§7.3 条件汇编 §7.4 本章知识回顾
第七章 高级汇编语言技术
§7.2 重复汇编
重复汇编伪指令又称重复块伪指令,用来缩写若干重 复的语句,以便重复进行多次。在汇编时展开。重复块也可
带有形式参数,在汇编过程中被实际参数代替;但重复块没
定义了回车换行的无形式参数宏
第七章 高级汇编语言技术 DECADD1 MACRO OPR1,OPR2 MOV AL,OPR1
ห้องสมุดไป่ตู้
ADD AL,OPR2
DAA MOV OPR1,AL ENDM
有形式参数的宏定义
宏指令

1.1 宏变量#0~#49当前局部变量#50~#199全局变量#200~#249 0层局部变量#250~#299 1层局部变量#300~#349 2层局部变量#350~#399 3层局部变量#400~#449 4层局部变量#450~#499 5层局部变量#500~#549 6层局部变量#550~#599 7层局部变量#600~#699 刀具长度寄存器H0~H99 #700~#799 刀具半径寄存器D0~D99 #800~899 刀具寿命寄存器1.2常量○1PI○2TRUE:条件成立(真)○3FALSE:条件不成立(假)1.3 运算符与表达式(1)算术运算符+,-,*,/。
(2)条件运算符EQ(=),NE(≠),GT(>),GE(≥),LT(<), LE(≤).(3)逻辑运算符AND,OR,NOT.(4)函数SIN(正弦),COS(余弦),TAN(正切),ATAN(反正切),ATAN2,ABS(绝对值),INT (整数),SIGN,SQRT(平方根),EXP(指数)。
(5)表达式用运算符连接起来的常数,宏变量构成表达式。
例如:175/SQRT[2]﹡COS[55﹡PI/80]; #3﹡6 GT 142.1语句(1)赋值语句格式:宏变量=常数或表达式。
把常数或表达式的值送给一个宏变量称为赋值。
例如:○1#2=175/SQRT[2]﹡COS[55﹡PI/80];○2#3=124.0(2)条件判别语句(IF,ELSE,ENDIF)○1格式1IF条件表达式;…;ELSE;…;ENDIF;○2格式2IF条件表达式;…;ENDIF;(3)循环语句(WHILE,ENDW)格式:WHILE条件表达式;…;ENDW;(4)举例用宏程序编制如图所示抛物线Z=X²/8在区间[0,16]内的程序。
%0011#10=0 X坐标#11=0 Z坐标G90 X0.0 Z0.0M03 S600WHILE #10 LE 16G90 G01 X [#10] Z [#11] F500#10=#10+0.08#11=#10﹡#10/8ENDWG00 Z0 M05G0 X0M30。
第七章_10_宏操作

• GotoPage:可将活动窗体中的焦点移至指定页中的第一个控 件。 • GotoRecord:可使打开的表、窗体或查询结果的特定记录 成为当前活动记录。 • DisplayHourglassPointer:在宏执行时可以使鼠标指针 变成沙漏图标或其他指定图标。 • MaxmizeWindow:最大化活动窗口。 • MinimizeWindow:将活动窗口缩小为Access窗口底部的 一个小标题栏。 • MessageBox:可显示一个包含警告或提示性消息的消息框 。 • OnError:可指定当宏出错时如何处理。 • OpenForm:可在窗体视图、设计视图、打印预览视图与数 据表视图中打开一个窗体。 • OpenQuery:可在数据表视图、设计视图或打印预览视图中 打开选择查询或交叉表查询。
2017/8/16 18
二、宏的创建与设计
• 宏的创建方法和其他对象的创建方法略有 不同。通常创建宏对象比较简单,因为不 管是创建单个宏还是宏组,各种宏操作都 是从Access提供的宏操作中选取,而不是 自定义的。 • 宏不能通过向导创建,只能通过设计视图 直接创建。
2017/8/16
19
1、创建与设计单个宏
2017/8/16
32
保存并命名为“宏组”:
2017/8/16
33
打开“学生选课及成绩信息”窗体设计视图 ,添加命令按钮:
2017/8/16
34
给命令按钮命名:
2017/8/16
35
右键单击命令按钮,选择属性:
2017/8/16
36
运行宏组打开窗体的效果:
2017/8/16
37
3、创建与设计条件宏
2017/8/16
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
macro_name [实元表]
;实参
宏展开:汇编程序把宏调用展开
一般将宏定义放在所有代码的前面
例7.1:保存寄存器
宏定义:
savereg MACRO push ax push bx push cx push dx push si push di
ENDM
宏调用: savereg
宏展开:
1 push ax 1 push bx 1 push cx 1 push dx 1 push si 1 push di
子程序sub1
宏调用过程图示
宏调用与子程序调用的区别总结:
子程序: 优点:模块化,节省内存,可被多次调用,编程效率高。 缺点:额外开销大(参数传递),增加了执行时间。适 用于功能代码较长、调用比较频繁、参数较少的情况。 宏调用: 优点:参数传送简单,执行效率高。 缺点:不节省空间,适于子功能代码较短、传送参数 较多的情况。
例7.2:两个字相乘
宏定义:
multiply MACRO opr1,opr2,opr3 push dx push ax mov ax,opr1 imul opr2 mov result,ax pop ax pop dx
ENDM
宏调用:
Multiply cx,var,xyz[bx]
宏展开:
1 push dx 1 push ax 1 mov ax,cx 1 imul var 1 mov xyz[bx],ax 1 pop ax 1 pop dx
பைடு நூலகம்
REPT 7
DW
$+2
ENDM
DW
ARRAY
汇编后:
1 DB $+2 1 DB $+2 1 DB $+2 1 DB $+2 1 DB $+2 1 DB $+2 1 DB $+2 1 DB $+2
列表伪操作:
.LALL:在LST清单中列出宏展开后的全部语句(包括注释)。 .SALL:在LST清单中不列出任何宏展开后的语句。 .XALL: 省略的列表方式,只列出产生目标代码的语句。
一、宏库的建立与调用
macro1
宏库定义;MACRO.MAC macro2
宏库调用
include 路径\MACRO.MAC ……. macro1[实元表] ……. macro1[实元表] macro1[实元表]
PUSH-TAB MACRO K PUSH TAB+K ENDM
宏调用: I=0
REPT 5 PUSH-TAB %I I=I+2 ENDM
宏展开:
2 PUSH TAB+0 2 PUSH TAB+2 2 PUSH TAB+4 2 PUSH TAB+6 2 PUSH TAB+8
例7.9:
ARRAY LABEL WORD
ENDM 重复次数由参数的个数确 定
例7.7:把字符‘A’到‘Z’的ASCII码填入数组TABLE
CHAR=‘A’
TABLE LABEL BYTE
REPT 26
DB
CHAR
CHAR=CHAR+1
ENDM
汇编后:
1 DB 61H 1 DB 62H 1 DB 63H
…………… 1 DB 7AH
例7.8:宏定义
§7.2 重复汇编
用于连续产生完全相同或基本相同的一组代码。
重复伪操作REPT REPT 表达式(重复次数) ………….;重复块 ENDM
重复伪操作不一定要用在宏定义中
不定重复伪操作IRP/IPRC IRP 哑元,<自变量表> ………….;重复块
ENDM IRPC 哑元,字符串 ………….;重复块
宏调用: Leap z, there …………… Leap nz, here
宏展开:
1 jz there ………
1 jnz here
例7.5:宏定义
msg
MACRO lab,num ,xyz lab&num db ‘hello mr.&xyz’ ENDM
宏展开:
宏调用: msg ary, 1, wang …………… msg ary, 2, zhang
宏调用: cntr=0 …………… errmsg ‘syntax error’ …………… errmsg ‘invalid operand’
宏展开:
1 cntr=cntr+1 1 msg %cntr,’syntax error’ 2 msg1 db ‘syntax error’
…………. 1 cntr=cntr+1 1 msg %cntr,’invalid operand’ 2 msg2 db ‘invalid operand’
例7.3:求绝对值
宏定义:
absol next:
MACRO oper LOCAL next cmp oper,0 jge next neg oper
ENDM
宏调用: absol var absol bx
宏展开:
1
cmp
1
jge
1
neg
1 ??0000:
var,0 ??0000 var
1
cmp
1
jge
macro3
MACRO [ 哑元表 ] …… ENDM MACRO [ 哑元表 ] …… ENDM MACRO [ 哑元表 ] …… ENDM
宏调用与子程序调用的区别:
子程序:在程序执行期间被调用,只占自身大小的一 段空间。
宏调用:在汇编期间被展开,每调用一次就把宏定义 体展开一次。
子程序调用过程图示 主程序
1 ary1 db ‘hello mr.wang’ ………
1 ary2 db ‘hello mr.zhang’
例7.6:宏定义
msg MACRO count, string msg & count db string ENDM
errmsg MACRO text cntr=cntr+1 msg % cntr, text ENDM
1
neg
1 ??0001:
bx,0 ??0001 bx
宏汇编操作符: & ;; %
符号1&符号2 宏展开时,合并前后两个符号形成一个符号。
;; 注释 宏展开时, ;;后面的注释不予展开。
% 表达式 汇编程序将%后面的表达式转换为数字,并在
展开期间用这个数取代哑元。
例7.4:宏定义
leap
MACRO cond,lab j&cond lab ENDM
§7.1 宏汇编
宏:源程序中一段有独立功能的程序代码。 宏指令:用户自定义的指令。在编程时,将多次使用的功能用
一条宏指令来代替。
汇编程序:指令 伪指令(伪操作) 宏指令
一、宏定义
宏定义:
macro_name MACRO [ 哑元表 ] ;形参 /实参
[LOCAL 标号表]
……
……
;宏定义体
ENDM 宏调用: (必须先定义后调用)