编译器涵盖汇编知识
发布时间
阅读量:
阅读量
编译器涉及的汇编知识
- 声明部分
-
基础概念
-
函数定义
-
需注意的事项
-
- 操作数的限制条件
- db, dw, dd
- idiv
-
调用外部函数的方法
-
总结内容
-
声明
一生所学的知识终究有限,若术语使用不当、方法选择不妥,也无可奈何,毕竟所掌握的内容仅此而已。
基础
参照学长所提供的汇编入门
函数
上述教程可能缺少的是关于函数编写方式的讲解。首先,有两个寄存器具有关键作用,即ebp与esp。其中,ebp用于标识当前函数栈空间的起始地址,而esp则指向当前栈顶位置。当执行push操作时,esp的值会减少4,需要注意的是,此处是减法而非加法,因为栈结构是从高地址向低地址方向扩展的。此外,在分配局部变量空间时,也可以通过执行sub esp, 0x4的方式来实现相同的效果。
// 一个递归的函数
fun(int v1, int v2)
{
v1 = v1 + 1;
if (v1 <= v2)
v1 = fun(v1, v2);
return v1;
}
全部评论 (0)
还没有任何评论哟~
