![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
AT&T汇编
文章平均质量分 65
一枝春美食
这个作者很懒,什么都没留下…
展开
-
关于AT&T汇编和c语言的相互调用的分析
这方面很多人写了blog,这次我也是学习,从objdump等工具分析。 ------------------------c中调用汇编------------------------------- 首先给出c文件 #include int main() { int j; j=add(3); printf("add(3) is %d\n",j); } add是用汇编完成的,看看c如何调原创 2015-03-10 10:26:45 · 1119 阅读 · 0 评论 -
gcc 对c文件的编译/汇编/连接的过程的理解
此次整理源于一个问题的没理解。 ---------------------------------------------------------------- 对图mian函数 int main (void) { return(0); } /* end of main */利用gcc - S main.c -o main.s gcc -c main.s -o main.o gcc原创 2015-03-12 10:28:43 · 704 阅读 · 0 评论 -
不依赖glibc库的hello world的学习
在研究gcc的编译 链接时,遇到的比较有意思的东西。号称最小的程序。原创 2015-03-13 22:29:08 · 1358 阅读 · 0 评论 -
看看c样式printf的压栈顺序
之前研究过变参函数的实现,再看看具体printf函数的压栈顺序。 看看之前写的汇编中利用call printf来完成字符的输出.section .data output: .asciz "the processor vendor ID is '%s'\n" .section .bss .lcomm buffer,12 .section .text .globl _start _start: m原创 2015-04-13 15:50:50 · 489 阅读 · 0 评论 -
从汇编的角度理解为什么c样式函数使用时,实参尽量使用指针传递
如题,常常将参数传递时,用常值传递和用地址传递都是可以的,但是实际都是用指针来传递。这是在中兴面试时,想到的联系,可以用汇编层来理解。原创 2015-05-18 16:21:56 · 561 阅读 · 0 评论 -
linux 0.12之head.s跳转到main.c的说明
因为只有引导代码中使用了as86的编译器,linux0.12其他汇编都是基于GNU as汇编的,这是背景。 head.s是在gnu as下编译的,使用的是AT&T汇编模式。主要完成一些GDT的初始化,然后跳转到main.c函数执行,这两者如何顺利调用的,今天研究一下。 下面是linus给出的关键源码:after_page_tables: pushl $0 # These are the p原创 2015-06-23 20:11:29 · 1155 阅读 · 0 评论 -
由strlen()引发的小问题(有符号无符号比较的汇编层次理解)
看到strlen的源码,很简单,检测‘\0’ 下面为我的源码#define NOP do{}while(0) unsigned int mstrlen(const char * str) { int length; for(length=0;*str!='\0';str++) length+=1; return length; }这里有个细节 就是返回值是无原创 2015-05-19 22:49:01 · 628 阅读 · 0 评论