读《Professional Assembly Language》之lc消失之迷

Professional Assembly Language

上文里说到了,在x86-64的机器上,通过对as命令加入–32 参数,并在 ld 命令里加入-melf_i386参数,即可编译并链接成32-bit的cpuid。关于这两个参数的说明,可以参看man手册。

同样是在第四章节,链接c库函数,作者提供了另一个版本的cpuid,这次链接过程出现了新问题,可不是简单加入个参数就能解决的。是什么问题呢?如下:
$ as -gstabs --32 -o cpuid2.o cpuid2.s
$ ld -melf_i386 -dynamic-linker /lib/ld-linux.so.2 -o cpuid2 -lc cpuid2.o
ld: skipping incompatible /usr/lib/libc.so when searching for -lc
ld: skipping incompatible /usr/lib/libc.a when searching for -lc
ld: cannot find -lc

[ Read More » ]

读《Professional Assembly Language》之EAX消失之迷

Professional Assembly Language

CPUID的例子出现第四章,A Sample Assembly Language Program,也是全书第一个完整的代码示例,结构简单,编译和链接均正常,执行结果也符合预期。

但是,在接下来的过程中出现了问题,DEBUG是日常工作的一部分,我把它视作是显微镜。使用GDB调试,每次查看通用寄存器都看不到想要的结果,而会被告知:Value can’t be converted to integer.

同时,如果使用 info registers,则根本找不到任何eax等寄存器的踪影,取而代之的是rax等一类新面孔,如图所示。

[ Read More » ]

这个忙碌的六月

2011年的六月看不出跟往年有什么大的不一样,当然我说的是自己住的地方,没调查过降雨量和平均气温,感觉到一如既往地热辣辣,西瓜倒是比往年一斤贵了三毛钱,水价没涨,桶装水涨了两块。

去年这个时候,我还在东莞的一个镇子上,没事的时候,就观摩停在海豚湾外面的车子号牌,感叹这么多好情的人们,从四面八方赶到这旮旯,殚精竭虑地支持文化娱乐事业,感动得我都要加入到他们的队伍中去。

[ Read More » ]

读《程序员》:云

Programmer

五月刊的《程序员》说的是云计算,这个概念真的太热门了,连我的头任老东家也加入进来。这可让我大吃一惊,老东家管理层都是技术出身,对前沿趋势和炒作噱头的研判比较到位。这次某某云计算大会上,管理层一改往常沉稳、低调的姿态,走上展会和讲台,不像是忽悠一把儿。

我对云计算的认知止于Hadoop,对云计算的使用限于Amazon Web Services,《云计算应用之路》专题里,除了软广告之外,能看懂的内容寥寥无几。当然,《云计算大势图》还是看得明白的。这其中让我奇怪的是,SaaS(Software as a Service)也纳入到了云计算的概念里,这个“软件即服务”在几年前也是热了一阵子,现在挟云计算之势又卷土重来了。

[ Read More » ]

读《程序员》:HTML5与薪资

Programmer

四月份的《程序员》封面报道讲得是HTML5,新功能的介绍,以及新API的演示占去了不少篇幅讲述新功能,编辑也不忘在最末给读者描绘一下美好的未来,鼓动一下国内从业人员向新的标准靠拢。以我自己来讲,在从事移动终端开发之前,有三年的时间,做的是Web App。没错,前台AJAX,以Ext JS、JQuery用得最多,后台SSH,也掺杂着Servlet、JDBC。

关于Web App,最为不爽的是浏览器的兼容性。在我所参与的项目中,能够完美运行在Firefox等非基于IE内核的浏览器上的,几乎没有。印象最深的是,第一个项目使用IE的htc技术(此htc非宏达电)来展现表格以及排序,只能在IE上运行。就这个问题,我曾经天真地向公司副总请教为啥不兼容其它浏览器,结果被调侃了一番。

[ Read More » ]