资源描述:
《《汇编语言编程》ppt电子课件教案07masm语法(1)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编语言课件07MASM语法(1)汇编语言语句一般格式为:[语句标号:]指令名[操作数序列][;注释]标识符:用来为变量、段、标号、过程等命名命名规则:最长31个字符第一个字符不能是数字?-$@可出现在任意位置,但?$不能单独使用汇编语言语句格式与分类[语句标号:]指令名[操作数序列][;注释]语句标号——标识符后加:,提供转移地址,开始地址[语句标号:]指令名[操作数序列][;注释]三类:机器指令、伪指令和宏指令。机器指令:指令系统中的硬指令,程序运行时由CPU执行伪指令:汇编程序执行的操
2、作,规定汇编程序如何按要求进行汇编及分配内存宏指令:由一系列指令或伪指令构成,汇编时展开成若干条机器指令,用于提高编程效率(伪指令和宏指令由汇编程序在汇编期间处理)[语句标号:]指令名[操作数序列][;注释]可以是常量、变量、表达式、寄存器名或标号等,用逗号隔开。“;”后可给出语句注释,提高可读性和可理解性。[语句标号:]指令名[操作数序列][;注释]常量、变量、标号、运算符和表达式常量表示一个固定的数值,又可分成多种形式。1.常数这里指由10,16,2和8进制形式表达的数值各种进制的数据以后缀字母
3、区分,默认不加后缀字母的是十进制数基数控制.RADIX伪指令可以改变默认进制:.RADIXn.RADIX10.modelsmall.stack1024.datastringdb‘Hello,world’,0dh,0ah,‘$’.codestart:movax,@datamovds,axmovdx,offsetstringmovah,9int21hmovah,4chint21hendstart常量其中,n为2-16范围内任何数值。例如指令“.RADIX16”,将缺省基数改为16,即没有后缀的数值表示1
4、6进制数,非16进制数均应使用后缀字母,包括10进制数例如10101100B0a4h,56acH35D357Q实数:±整数.小数E±指数4字节、8字节或10字节例如:21.42-4.55E+2字符串字符串常量是用单引号或双引号括起来的单个字符或多个字符,其数值是每个字符对应的ASCII码值。例如‘d’=64H‘AB’=4142H,‘Hello,Assembly!’符号常量符号常量是指使用标识符表达一个数值。常量若使用有意义的符号名来表示,就可以提高程序的可读性,同时更具有通用性。MASM提供等价机制
5、,用来为常量定义符号名,符号定义伪指令有“等价EQU”和“等号=”伪指令。符号定义伪指令符号名EQU数值表达式符号名EQU<字符串>;MASM5.x不支持符号名=数值表达式等价伪指令EQU给符号名定义一个数值或定义成另一个字符串,这个字符串甚至可以是一条处理器指令。例如:DosWriteCharequ2CarriageReturn=13CallDOSequ应用上述符号定义,下列左边的程序段可以写成右侧的等价形式:movah,DosWriteChar;movah,2movdl,Carr
6、iageReturn;movdl,13CallDOS;int21hEQU用于数值等价时不能重复定义符号名,但“=”允许重复赋值,例如:X=7;同样XEQU7是正确的X=X+5;但是XEQUX+5是错误的数值表达式数值表达式一般是指由运算符(MASM统称为操作符Operator)连接的各种常量所构成的表达式。汇编程序在汇编过程中计算表达式,最终得到一个确定的数值,所以也是常量。由于表达式是在程序运行前的汇编阶段计算,所以组成表达式的各部分必须在汇编时就能确定。汇编语言支持多种运算符P46表3-2mov
7、ax,3*4+5;等价于movax,17oral,03hAND45h;等价于oral,01Hmoval,0101bSHL(2*2);等价于moval,01010000b变量变量实质上是指内存单元的数据,因而可以改变。变量需要事先定义才能使用。变量的三种属性:段值(SEG):变量所在段的段址偏移量(OFFSET):变量所在段相对0的存储位置(字节数)类型(TYPE):变量占用的字节数1.变量的定义变量名伪指令初值表变量名为用户自定义标识符,表示初值表首元素的逻辑地址。变量名也可以没有,在这种情况下,汇
8、编程序将直接为初值表分配空间,无符号地址。变量名伪指令初值表变量定义伪指令有DB,DW,DD,DF,DQ,DT,它们根据申请的主存空间单位分类DB:字节DW:字(16位)DD:双字(32位)DQ:4字节存实型数DT:10字节,BCD码除了DB,DW,DD等定义的简单变量,汇编语言还支持复杂的数据变量,如结构(Structure)、记录(Record)、联合(Union)等变量名伪指令初值表初值表是用逗号分隔的参数,主要由常量、数值表达式或“?”组成。其中“?”表示初值