摘要:
%include 格式 %include file.asm 说明 包含其他的asm源文件,可使用C常用的防止被重复包含的方法 %ifndef MACROS_MAC %define MACROS_MAC ; 文件内容 %endif %rep 格式 %rep 重复次数 XXXXX 要重复的代码内容 %e 阅读全文
摘要:
简述 这一些预处理指令是为了方便我们使用堆栈传参的时候的程序调用的。 我们一般的调用过程如下 proc1: push 参数1 ; 参数1 压栈 push 参数2 ;参数2 压栈 push 参数3 ;参数2 压栈 call proc2 proc2: push bp ; bp内容压栈, 为的是保存bp寄 阅读全文
摘要:
结构定义 格式 struc xxx .aaa resw 1 .bbb resw 1 endstruc 说明 他并非真正的结构体支持,而是相当于定义了一系列的LABEL,并且这些LABEL的地址都是相对于结构体开始处的偏移地址 所以 .aaa = 0; .bbb = 2;因为.aaa 占用了2个字节 阅读全文
摘要:
上下文堆 解释 就是一个在编译期间由编译器维护的堆栈 之前说了预处理器的作用是在编译阶段执行一些代码,以简化或者增强汇编代码的能力,就像汇编代码本身执行的过程中需要一个堆栈存储一些信息一样,预处理器的指令在运行过程中也是需要存储一些信息的,那么这个上下文栈就是存储信息的地方 但是它比堆栈更强大,堆栈 阅读全文
摘要:
基本格式 %if<condition> %elif<condition> ……;elif 的数量不限制 %elif<condition> %else ;else也可由可无 %endif 所以基本就是C 的语法 条件判断 指令 %if <condition> %elif <condition> 说明 阅读全文
摘要:
简要说明 所谓预处理器,就是在编译阶段由编译器解释执行的代码,所以代码的结果应该是在编译阶段就能确定,否则就会报错。 强大的预处理器可以简化和增强汇编代码的能力。 单行宏 %define / %idefine 基本格式: %define a mov ax,1 %define a(p1,p2) mov 阅读全文
摘要:
EQU var equ 1 与MASM中一致,定义常数 TIMES 与MASM 的 REPT 或者DUP 指令功能类似 其更像是 rept 的地条指令版本 TIMES n xxxx => REPT n xxxx ENDM 比如: 功能:初始化buffer的内容,并把长度凑满 64字节 BUFFER: 阅读全文
摘要:
基本格式 nasm -f <format> <filename> [-o <output>] 比如: nasm -f elf myfile.asm ; 将myfile.asm 编译成 elf文件格式,的 myfile.o文件,elf 是linux的可执行程序格式 常用编译命令 -f 指定要编译的格式 阅读全文