![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编
旧书@山水君
待到山花烂漫时,我必丛中笑。
展开
-
linux之用汇编(AT&T)的角度理解C的函数调用
第一步:写一个简单的C程序C文件:main.c#include <stdio.h>int g(int x, int y){ return x + y;}int f(int x, int y){ return g(x, y);}int main(){ int x, y; x = 3; y = 4; printf("s...原创 2020-04-15 20:04:13 · 209 阅读 · 0 评论 -
Linux之汇编复习篇(三)复杂指令及宏指令
常见指令解读出入栈操作(栈是向低地址递增的)pushl $0x1024 // 将数值0x1024压入栈中,0x10压如高(地址)字节,0x24压入低(地址)字节// 等效于subl $2 %espmovl $1024 (%esp)popl %eax // 将当前栈顶的数值放进eax寄存器,高位对高位(弹出4个字节)// 等效于movl (%esp) %eaxaddl $4 ...原创 2020-04-09 16:42:05 · 260 阅读 · 0 评论 -
Linux之汇编复习篇(二)寻址方式
寻址方式寄存器寻址(register mode)movl %ebx %eax eax = ebx// %符号表示该寄存器所存储的值立即数寻址(immediate)movl $0x1024 %eax eax = 0x1024// $符号表示该数值的字面意思直接寻址(direct)movl 0x1024 %eax eax = *(int32_t*)0x102...原创 2020-04-09 09:47:10 · 267 阅读 · 0 评论 -
Linux之汇编复习篇(一)寄存器简介
x86寄存器通用寄存https://next.xuetangx.com/learn/USTC08091000586/USTC08091000586/1075197/video/596918注意:E表示32为、R表示64位。下同栈EBP作为 堆栈基指针 指向栈底;ESP作为 堆栈顶指针 指向栈顶栈顶在低地址,栈底在高地址;因此栈是自上而下的故 压栈ESP减4,出栈ESP加4(以3...原创 2020-04-08 23:46:35 · 372 阅读 · 0 评论