自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (4)
  • 收藏
  • 关注

转载 CPU的大小端模式

不同体系结构的CPU,数据在内存中存放的排列顺序是不一样的。存储器中对数据的存储是以字节(Byte)为基本单位的,因此,字(Word)和半字(Half-Word)在存储器中就有两种次序,分别称为:大端模式(Big Endian)和小端模式(Little Endian)。大端存储模式是指字或半字的最高字节(Most Significant Bit,MSB)存放在内存的最低位字节地址上

2012-07-30 10:14:05 1421

转载 应考虑字节顺序(大小端问题)的几种情况

(From《Computer Systems,A Programer's Perspective》)在几乎所有的机器上,多字节对象被存储为连续的字节序列,对象的地址为所使用字节序列中最低字节地址。某些机器选择在存储器中按照从最低有效字节到最高有效字节的顺序存储对象,这种最低有效字节在最前面的表示方式被称为小端法(little endian)(e.g.:Intel处理器上运行Linux,NT);某些

2012-07-30 10:08:47 1938

转载 调程序就恶心,怎么办?

前几天和一位大一同学的交谈中,她痛苦地告诉我:“调程序就恶心,有两次坐在计算机前超过两小时,都呕吐了。”  遇到这种问题真是让人难过。不说她目前编程还有些困难,即使感兴趣编程,这也让人够痛苦的了。  其实,问题可能就坏在了“编程有些困难”上。我和她分析,如果不出意外,这是由心理导致的生理问题。  有不少学生,尤其中考生、高考生,已到考试了,由于焦虑紧张的情绪,出现了“腹痛、

2012-07-22 07:26:50 1252

转载 #ifndef 与 #pragma once 的区别

#pragma once与 #ifndef的区别为了避免同一个文件被include多次1   #ifndef方式2   #pragma once方式在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。    方式一:    #ifndef __SOMEFILE_H__    #define __SOMEFILE_H__

2012-07-21 13:30:27 625

转载 推荐学习PPT的几本书

年后一段时间做PPT汇报材料,感觉PPT方面还有不足,最近系统的学习了PPT,找了几本书还有别人推荐的一些,在这与大家分享. 《PPT演义》,图标和动画有些实例,跟着做会有收获,比如学会了做高光图形,还有一些做图形的技巧。《PPT图形设计》,这个可以好好学学,以后看到好的幻灯片图就可以自己做了。 《演说之禅》,更加的理论化,可以作为后期提高更高层次的东西来看

2012-07-18 15:55:45 1596

转载 C++编码中减少内存缺陷的方法和工具

C++语言是桌面系统,尤其是系统软件、大型应用软件的主流开发语言。C++语言以其灵活性著称,同时也更复杂。利用C++编写健壮的代码,更具有挑战性。C++允许动态内存管理, 同时也容易导致更多和内存相关的问题。一般而言, 除了系统设计上的缺陷, 基于C++的软件的缺陷和错误大部分都和内存缺陷(主要包括内存访问错误和内存泄漏两类)相关。 所以,消除代码中的内存相关缺陷,成为程序员编写、调试、维护代码中

2012-07-18 15:54:04 955

转载 Fedora14 源码安装qt4.7.0 PC版 和 arm版 过程 及问题解决(之三,续上)

接下来要编译qt4.7.0的Arm版本了!编译前确认安装了arm-linux-gcc,我的版本是4.5.1,试试看吧!以前4.3.2是没问题的!     将原来的解压缩目录删除了,因为pc上的qt已经装好了。然后mkdir arm-qt4.7.0,将源文件解压缩到这个文件夹下。命令:tar -zxvf qt-everywhere-opensource-src-4.7.0.tar.gz -C

2012-07-18 15:52:49 1090

转载 Fedora14 源码安装qt4.7.0 PC版 和 arm版 过程 及问题解决(之二,续上)

接上,make完之后make install。然后添加环境变量,gedit /etc/profile 在里面的最后添加:export PATH=/usr/local/Trolltech/Qt-4.7.0/bin:$PATH点击保存,命令;source /etc/profile使之生效。然后终端里输入qmake,检查是否安装成功。        接下来,要安装qt的开

2012-07-18 15:51:31 1027

转载 Fedora14 源码安装qt4.7.0 PC版 和 arm版 过程 及问题解决

以前在pc上安装qt4.8.0是用qt sdk安装的,直接把qt4.8.0library 以及qt Creator等全安装好了。这次项目需要是用qt4.7.0版本,因此只好重新安装了,由于使用的是fedora14,比ubuntu11.10上麻烦不少,原因是ubuntu用户多,一个问题一搜就能得到解决方法,Fedora上可能少些,但还是有的。    安装qt4.7.0(这里单纯指的qt4.7

2012-07-18 15:49:44 1326

转载 c++ 前置声明不能随便用 会引起类型不完全的错误

as:   XX.h    namespace WebCore{ class Stringclass A{String test() const;};}XX.cppnamespace WebCore{String A::test()const{}} 在XX.cpp的t

2012-07-18 15:48:23 1065

转载 工欲善其事,必先利其器——学会不将就,让自己事半功倍!

工欲善其事,必先利其器。磨刀不误砍柴工。这些成语、俗语都告诉我们做事情前,先把用到的工具打理好,用起来才会得心应手,工作起来才会事半功倍!古代如此,在信息化的今天更是如此。作为一个程序员,每天的工作就是敲代码,合理的配置我们所用的IDE,会让我们的工作事半功倍。有的人可能会说,现在的IDE都非常的智能了,不需要我们自己手动配置了。的确现在的工具真的是越来越好用,几乎所有的常用开

2012-07-18 15:45:11 1068

原创 随笔三十六:条件传送指令

实现条件操作的传统方法是利用控制的条件转移。这种机制简单而通用,但是在现代处理器上,它可能回非常的低效率。        数据的条件转移是一种替代的策略。这种方法先计算一个条件操作的两种结果,然后再根据条件是否满足从而选取一个。只有在一些受限制的情况下,这种策略才可行,但是如果可行,就可以用一条简单的条件传送指令来实现它。条件传送指令更好地匹配了现代处理器的性能特征。        基于条

2012-07-17 17:46:19 2386

原创 随笔三十五:循环

1、do-while 循环        do-while 语句的通用形式如下:do body-statementwhile(test-expr);        do-while 的通用形式可以翻译成如下所示的条件和 goto 语句:loop: body-statement t = test-expr; if (t) goto l

2012-07-17 10:37:35 1069 2

原创 随笔三十四:翻译条件分支

将条件表达式和语句从 C 语言翻译成机器代码,最常用的方式是结合有条件和无条件跳转。(有些条件可以用数据的条件转换实现,而不是控制的条件转移来实现。)        C 语言中的 if-else 语句的通用形式模板是这样的:if (test-expr) then-statementelse else-statement        对于这种通用形式,

2012-07-17 07:58:34 792

原创 随笔三十三:跳转指令及其编码

跳转指令有两种跳转方式:       1)直接跳转 。即跳转目标是作为指令的一部分编码的;       2)间接跳转。即跳转目标是从寄存器或存储器位置中读出的。        直接跳转是给出一个标号作为跳转目标的,间接跳转的写法是‘*’ 后面跟一个操作数指示符。        表中所示的其他跳转指令都是有条件的——它们根据条件码的某个组合,或者跳转,或者继续执行代码序列

2012-07-16 15:05:44 1635

原创 随笔三十二:访问条件码

条件码通常不会直接读取,常用的使用方法有三种:1)可以根据条件码的某个组合,将一个字节设置为 0 或者 1;2)可以条件跳转到程序的某个其他的部分;3)可以有条件地传递数据。        对于第一种情况,下表描述的指令根据条件码的某个组合,将一个字节设置为 0 或者 1.这一类指令称为 SET 指令;它们之间的区别就在于他们考虑的条件码的组合是什么,这些名字的不同后缀指明了它们所

2012-07-16 14:26:00 1563

原创 随笔三十一:条件码

除了整数寄存器,CPU还维护着一组单个位的条件码(condition code)寄存器,它们描述了最近的算术和逻辑操作的属性。可以检测这些寄存器来执行条件分支指令。最常用的条件码有:        CF:进位标志。最近的操作使最高位产生了进位。可以用来检查无符号操作数的溢出。        ZF:零标志。最近的操作得出的结果为 0。        SF:符号标志。最近的操作得到的结果为

2012-07-16 11:23:49 1982

原创 随笔三十:特殊的算术操作

下表描述的指令支持产生两个 32 位数字的全 64 位乘积以及整数除法。指令效果描述    imull     S    mull     S                 R[%edx]:R[%eax]        S * R[%edx]                 R[%edx]:R[%eax]

2012-07-09 16:58:36 1284

转载 做一个内心强大的人

做一个内心强大的人二百年前丹麦思想家克尔凯郭尔一生一贫如洗,生命也很短暂,但是,他内心强大,一生充满快乐。像这样的人的幸福,是一般人所难以理解的。像这样内心强大的人,其实是精神贵族。现代社会,每个人都面对强大的社会压力,这其中,有来自事业的压力,身体健康的压力,亲人朋友给的压力。很多人无法承受一点委屈,当被人误解和冤枉时,往往感觉心理很受伤。而其实一个真正内心强大的人,是没有人能伤

2012-07-08 07:03:35 851

转载 【ARM】【mini2440】不需路由器、交换机搭建NFS服务

不需路由器、交换机搭建NFS服务申明:本博文绝对原创,请转载本博文注明出处:http://blog.csdn.net/fly928sky/article/details/7723993            在学习ARM嵌入式Linux开发的时候,需要搭建NFS服务来读写一些Linux下的文件的。其实搭建NFS是件很简单的事情,但是有很多新手一只为这个问题所烦扰,我在这里向大家介绍

2012-07-08 07:01:48 1119

原创 编写函数,将 x 中的位反过,创作一个镜像

int func(unsigned x){ int val = 0; int i; for (i = 0; i < 32; ++i) { val = (val << 1) | (x & 0x01); x >>= 1; } return val;}

2012-07-06 11:44:24 905

原创 编写函数,若 x 有奇数个 1 则返回1, 偶数个返回 0

int func(unsigned x){ int val = 0; while (x) { val ^= x; x >> = 1; } return 0x01 & val; }

2012-07-06 11:16:22 2539

原创 Fedora 17 设置 grub2 背景图片

1、将喜欢的图片重命名为backgroup.png,以 root 权限覆盖/boot/grub2/themes/system/background.png2、以 root 权限编辑 /etc/default/grub 文件3、意 root 权限执行grub2-mkconfig -o /boot/grub2/grub.cfg4、重启即可看到背景图片。

2012-07-05 19:15:25 1713

原创 随笔三十:x = 0

在汇编代码中经常看到  xorl %edx, %edx        这个指令可以将寄存器 %edx 设置为 0,运用了对任意x,x^x = 0 这一属性。将寄存器 %edx 设置为 0 的更直接的方法是用指令 movl $0, %edx。使用 objdump 对比发现使用 xorl 的版本只需要 2 个字节,而是用 movl 的版本需要 5 个字节。

2012-07-04 13:25:52 887

原创 随笔二十九:算术和逻辑运算

1、加载有效地址         加载有效地址指令 leal 实际上是 movl 指令的变形。它的指令形式是从存储器读数据到寄存器,但实际上它根本就没有引用寄存器。它的第一个操作数看上去是一个存储器应用,但该指令并不从指定的位置读入数据,而是将有效地址写入到目的操作数。(像 C语言中的 &)这条指令可以为后面的存储器应用产生指针。另外,它还可以简洁地描述普通的算术计算。         即

2012-07-04 12:29:28 904

原创 随笔二十七:数据传送指令

将数据从一个位置复制到另一个位置的指令是最频繁使用的指令。下面介绍下 MOV 类指令,MOV 类由三条指令组成, movb、movw 和 movl。这些指令都执行同样的操作;不同的只是它们分别是在大小为 1、2 和 4 个字节的数据上进行操作。       指令效果描述  MOV          S, D  D  S

2012-07-03 11:59:29 2306

原创 随笔二十八:invalid instruction suffix for push'

主机环境 Fedora 17 X86_64编写pushl %ebp想执行cc -O1 -c test.sobjdump -d test.o想看看在目标代码中 pushl 指令编码为几个字节,但在执行第一个命令时出现错误:invalid instruction suffix for push'在网上查找信息,得到问题的原因及解决方法:64位汇编与32位汇编不大一样,

2012-07-03 08:55:17 12005 4

原创 寻址模式

大多数指令有一个或多个操作数,指示出执行一个操作中要引用的源数据值,以及放置结果的目标位置。IA32 支持的操作数格式:        1)立即数(imm,常数值),在 ATT 格式的汇编中,书写方式是‘$’ 后面跟一个用标准 C 表示法表示的整数。         2)寄存器,它表示某个寄存器的内容。用符号Ea来表示任意寄存器 a,用引用 R[Ea] 来表示它的值,这是将寄存

2012-07-02 14:10:20 4667

原创 Fedora 安装 QQ2012

主机环境 Fedora 17 X86_641、从此链接下载软件点击打开链接2、依次执行以下命令 cd /root # 文件存储路径 tar -zxvf qq2012.tar.gz -C /opt # 解压到/opt路径下,注意权限cd /optlscd qq2012/wineapp/qq/ls./install.sh 显示 copy files

2012-07-01 23:52:16 8800 11

原创 随笔二十六:IA32 机器代码和它的反汇编表示的特型值得注意

1、IA32 指令长度从 1 到 15 个字节不等。常用的指令以及操作数较少的指令所需的字节数少,而那些不太常用或操作数较多的指令所需字节数较多。2、设计指令格式的方式是,从某个给定位置开始,可以将字节唯一地解码成机器指令。3、反汇编器只是基于机器代码文件中的字节序列来确定汇编代码。它不需要访问程序的源代码或汇编代码。4、反汇编器使用的指令命名规则与 GCC 生成的汇编代码使用的有些细

2012-07-01 11:34:56 2751

原创 随笔二十五:IA32 机器代码中一些对 C 程序员隐藏的处理器状态可见

1、程序计数器 (在 IA32 中,通常称为 “PC”,用 %eip 表示)指示将要执行的下一条指令在存储器中的地址。2、整数寄存器文件 包含 8 个命名的位置,分别存储 32 位的值。这些存储器可以存储地址(相对于 C 语言的指针)或整数数据。有的寄存器被用来记录某些重要的程序状态,而其他的寄存器则用来保存临时数据,例如过程的局部变量和函数的返回值。3、条件码寄存器保存着最近执行的算数或

2012-07-01 10:21:52 1044

Nitro PDF 7* 序列号

nitro pdf professional 6 & 7 任意版本都可以。仅供学习研究,请支持正版。

2012-09-07

黑客与画家 epub

本书是硅谷创业之父Paul Graham 的文集,主要介绍黑客即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。书中的内容不但有助于了解计算机编程的本质、互联网行业的规则,还会帮助读者了解我们这个时代,迫使读者独立思考。 本书适合所有程序员和互联网创业者,也适合一切对计算机行业感兴趣的读者。

2012-06-15

kscope-1.6.2

kscope-1.6.2,linux下阅读代码的工具,编译安装过程可参考http://blog.csdn.net/hmsiwtv/article/details/7646673

2012-06-11

VMWare Workstation 8.0.2 and Linux Kernel 3.2 Kernel

可用于linux kernel 3.2和3.3,使用方法请见我的博客

2012-04-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除