2012年7月11日

摘要: 1。大端小端的一个测试程序在之前一篇文章中有提到,下面是写的一个测试程序,可以用来查看一个机器是大端还是小端表示 1 #include<stdio.h> 2 typedef unsigned char * bytePointer; 3 void show_bytes(bytePointer start, int size){ 4 printf("start address : %p\nsize : %d\n", start, size); 5 for (int i = 0; i < size; i++){ 6 printf("address : 阅读全文
posted @ 2012-07-11 15:43 小宇2 阅读(1842) 评论(2) 推荐(0) 编辑
摘要: 1, cmp, jmp指令, 先看几个C中的循环 1 int sum(int* p, int size){ 2 int sum = 0; 3 for (int i = 0; i < size; i++){ 4 sum += *(p+i); 5 } 6 return sum; 7 } 8 int sum1(int* p, int size){ 9 int sum = 0;10 int i = 0;11 do{12 sum += *(p+i);13 i++;14 }while(i < s... 阅读全文
posted @ 2012-07-11 12:08 小宇2 阅读(1620) 评论(0) 推荐(0) 编辑
摘要: i386的几个寄存器 : segment registers先暂时不管了, 弄清楚, 其作用是不是跟IA32, 或IA64有关GAS的所有指命后面都带个字符后缀, 表操作数的大小, b, w, l分别是 8位, 16位, 32位, l也表示8字节的双精度浮点数, 另外我在自己的电脑上生成.s时看到了movq, pushq %rbx, %rbx表示64位的寄存器引用,这是在Intel 64 architecture中才有的,q指的是(quadword registers)通用寄存器就是整数寄存器, 用来存整数, 当然可以把它看作指针, 看怎么解析了 前6个比较通用, 后两个%ebp, %es.. 阅读全文
posted @ 2012-07-11 12:07 小宇2 阅读(2389) 评论(0) 推荐(0) 编辑

导航