记录汇编学习
Created
October 1, 2019 01:58
-
-
Save liweinan/fe2a6dff56e86c781669d54ea5a90692 to your computer and use it in GitHub Desktop.
汇编学习笔记
disassemble
命令:
启动容器:
$ docker run -it --privileged weli/docker-assembly-gef-pyenv bash
进入容器的root
目录:
$ cd /root
查看代码:
$ ls
asm.c foo.asm
asm.c
的内容:
$ cat asm.c
#include <stdio.h>
int main(void)
{
int foo = 10, bar = 15;
__asm__ __volatile__("addl %%ebx,%%eax"
:"=a"(foo)
:"a"(foo), "b"(bar)
);
printf("foo+bar=%d\n", foo);
return 0;
}
编译代码:
$ cc -g asm.c
得到a.out
:
$ ls a.out
a.out
上面过程的截图:
使用gdb
加载a.out
:
$ gdb -q a.out
使用gdb
的disassemble
命令查看main
函数编译后的汇编代码:
> disassemble main
过程截图:
可以看到上面的汇编指令中对printf
的调用:
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
::2020-05-07::更新:
使用的容器: