![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机原理
2845xlc
这个作者很懒,什么都没留下…
展开
-
字节顺序
#include #include typedef unsigned char *byte_pointer;void show_bytes(byte_pointer start, int len) { int i; for(i = 0; i < len; ++ i) { printf("%.2x", start[i]); } puts(""原创 2014-12-21 13:53:37 · 511 阅读 · 0 评论 -
在C语言中写TMin
本文为CSAPP2e的webaside资料,随意翻译,无版权。原文 1.情景 在CSAPP的图示和问题中,我们很小心的把32(TMin32)位有符号最小值写作-2147483647-1,为什么我们不直接写成-2147483648或0x80000000呢?不妨先打开limits.h头文件看看吧,你会发现它们也是用类似的诡异形式 ISO90: Decimal:转载 2014-12-22 15:19:39 · 2371 阅读 · 0 评论 -
判断溢出
判断两个int型变量的和是否会溢出int tadd_ok(int x, int y) { if(x >= 0 && y >= 0 && x+y < 0) return 0; if(x = 0) return 0; return 1;}原创 2014-12-23 16:53:51 · 741 阅读 · 0 评论 -
汇编指令
GAS中每个操作都是有一个字符的后缀,表明操作数的大小。C声明GAS后缀大小(字节)charb1shortw2(unsigned) int / long / char*l4floats转载 2015-02-01 21:18:21 · 642 阅读 · 0 评论 -
gprof 程序剖析
使用gprof使用命令编译 需参数 -pgg++/gcc -pg name1.c -o name2执行程序 添加参数file.txt 生成gmon.out./name2 file.txt调用gprof 分析gmon.out中数据gprof name2可看到程序各个部分运行时间原创 2015-02-07 16:40:13 · 660 阅读 · 0 评论 -
汇编 leave popl
最近在看c程序的编译出来的汇编文件,发现涉及到函数调用的地方,在返回时有的时候使用的leave,有的时候直接使用的是popl %ebp。在AT&T汇编中,leave等效于以下汇编指令:movl %ebp, %esppopl %ebp注意:此为32bits 操作系统,若为64bits 将使用rbp和rsp 寄存器!为什么有的时候会使用leave,有的时候直接使用popl转载 2015-01-03 20:49:16 · 1700 阅读 · 0 评论