1. MOV指令
MOV destination,source
Mov指令对操作数的使用是非常灵活的,只要遵循以下的规则即可:
●两个操作数的尺寸必须一致。
●两个操作数不能同时为内存操作数。
●目的操作数不能是CS,EIP和IP。
●立即数不能直接送至段寄存器。
2. 整数的零/符号扩展
当试图使用MOV指令将整数值从一个较小的操作数中拷贝到一个较大的操作数中时,可能会导致错误,但有时确实需要这样移动数据。
(1) MOVZX(move with zero-extend)指令将源操作数的内容拷贝到目的操作数中,并将该值零扩展(zero...
1.等号伪指令
名字 = 表达式
可以重复定义
2.计算数组大小
MASM用$符号返回当前地址的偏移值。
例如:string BYTE 10,20,30,40
stringsize = ($ - string),关键之处,从句必须紧跟要计算数组之后
3.EQU伪指令
name EQU expression
name EQU symbol
name EQU <text>
不可重复定义
4.TEXTEQU
name TEXTEQU...
1.数据定义语句:[名称] 数据定义伪指令 初始值 [,初始值]......
数据定义语句中至少要有一个初始值或者“?”符号,?符号不想给数据赋任何特定值的时候使用。
2.数据类型
BYTE 8位无符号整数(字节)
SBYTE 8位有符号整数(字节)
WORD 16位无符号整数(字,也可以在实地址模式下用做近指针)
SWORD 16位有符号整数(字)
DWORD 32位无符号整数(双字,也可以在实地址模式下用做近指针)
SDWORD 32位有符号整数(双字)
FWORD ...
(1)整数常量:由符号(可选)开头,加上一个或多个数字以及一个表示数制基数的字符后缀(可选)构成: [+|-] digits [radix]
radix(基数后缀)可以是以下之—(大小写均可):
h十六进制,q/o八进制,d十进制,b二进制,r编码实数,t十进制(可选),y二进制(可选)。
以字母开头的十六进制常量前面必须加一个0,以防止汇编编译器将其解释为标识符。
(2)整数表达式
算数运算符:()圆括号,+、-单目加减,*、/、MOD乘除取模,+、-加减。 (3)实数常量
有两种类型的实数常量:十进制实数和...
1.invoke 过程名 [,参数1] [,参数2]......
Microsoft做的一件好事,在编译时候编译器将其展开为push和call指令。调用过程名指定的地址处的过程。
2.local 变量名1[[重复数量]][:类型],变量名2[[重复数量]][:类型] ......
局部变量定义
3.子程序名 proc [距离][语言类型][可视区域][USER寄存器列表][,参数:类型].......[VARARG]
local 局部变量列表
指令
子程序 end
子程序的定义方式。
4.函数名 proto [距...
make工具最主要也是最基本的功能就是通过描述文件来描述源程序之间的相互关系并自动维护编译工作,而描述文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并链接生成可执行文件,并要求定义源文件之间的依赖关系,为了更方便使用,文件中同时可以用一些宏定义。
描述文件包含内容:
(1)注释 (2) 宏定义 (3)显式规则 (4)隐含规则
1.注释和换行 makefile中的注释是以#号开头一直到行尾的字符,当nmake工具处理到这些字符的时候,它会完全忽略#号及其后面的全部字符。 当一行的内容过长的时候,可以用换行符...
1.make工具的makefile文件
make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式——通过调用makefile文件中用户指定的命令来进行编译和链接的。但是,批处理会执行全部命令将全部源文件编译,包括那些不必重新编译的源文件,而make工具则可根据目标文件上一次编译的时间和所依赖的源文件的更新时间自动判断应当编译哪些源文件,对没有更新过的文件不会处理,这样就可以大大提高程序调试的效率。
make可以根据文件的时间正确判断文件的新旧并执行相应的步骤。但make又是如何知道文件之间的依赖关系呢?这需要用户用一个描述文件来...
/AT Enable tiny model (.COM file)
/omf generate OMF format object file
/Bl<linker> Use alternate linker
/Sa Maximize source listing
/c Assemble without linking
/Sc Generate timings in listing
/Cp Preserve case of user identifiers
/Sf Generate first p...