- 博客(12)
- 收藏
- 关注
原创 64位Linux汇编
背景如今操作系统都64位了,但大部分教材教程书籍资料还停留在32位,绝大部分编程语言不用care这个问题,但汇编还是有较大变化的。
2016-08-27 02:08:09
1067
原创 字符串替换函数strreplace
C语言实现一个字符串替换函数strreplace(char* str, char* sub, char* rep) ,str为原字符串,sub是待替换的字符串,rep为替换字符串,不得使用库函数。
2016-08-25 16:31:57
5423
1
原创 判断一个数是否是2的整数次幂
判断一个正整数是否是2的正整数次幂,如果是则计算此数是2的多少次方,要求不能用for, while, goto循环语句
2016-08-23 23:45:59
741
原创 C语言++i和i++
解释说明++i和i++的区别++i表示取i的地址,增加它的内容,然后把值装入寄存器中i++表示取i的地址,把它的值装入寄存器中,然后增加内存中i的值
2016-08-06 00:37:30
1186
原创 判断一个数是否是2的正整数次幂
两种方法判断一个数是否是2的正整数次幂:1. 方法一func1若这个数x按位与x-1等于0则就是2的正整数次幂2. 方法二func2判断这个数的二进制位中是不是只有一位是13. 方法三传统的除2求余法,未实现#include int func1(long x){ int ret = 0; if(x&(x-1)) { ret = 0; } else {
2016-08-02 20:58:10
2176
翻译 qemu和gdb的long模式
如果你用qemu调试代码遇到了Remote 'g' packet reply is too long: ...错误,两种可行的解决方案如下:> gdbset arch i386:x86-64:inteltarget remote localhost:1234symbol-file YOUR_KERNEL_FILEbreak
2016-07-28 23:01:15
369
原创 也谈大端小端
何为大端小端大端模式:数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中;小端模式:数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。如何判断#include int main(){ union { int value; char byte[sizeof(int)
2016-07-17 00:21:10
235
原创 64位Linux汇编
操作系统都开始向64位过度了,但大部分教材教程书籍资料还停留在32位,绝大部分语言不用care这个问题,但汇编还是有较大变化的。C语言代码:int main(){ exit(2);}32位汇编实现上述C语言代码相同功能:.section .data.section .text.global _start_start: movl $1, %e
2016-07-15 15:44:23
1397
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人