GCC 内联汇编 HOWTO
本 HOWTO 文档将讲解 GCC 提供的内联汇编特性的用途和用法。对于阅读这篇文章,这里只有两个前提要求,很明显,就是 x86 汇编语言和 C 语言的基本认识。
话说windows也有syscall,这是必须的。但是win的syscall可以直接call吗?可以是 可以但是破费周折,搞成SDT之类的复杂概念。下面看看linux是如何做的吧。
view plaincopyprint?
section.data msgdb"hellohopy!",0x0a
section.text global_start
_start: moveax,4 movebx,1 movecx,msg movedx,12 int0x80
moveax,1 movebx,0 int0x80
关键是系统调用号要知道,开始找的是usr/include/asm-gen*/unistd.h, 可是都不对。后来找的是usr/include/x86_64_linux_gnu/asm/下的头文件, 有2个,分别对应x86和x64.、编译连接指令如下: nasm