随笔分类 -  ASM

摘要:这个代码在GCC中是不能编译通过的,断句之后是这样:(*a)++ + ++(*b),如果a、b不同的话,很好判断,相当于 a + (b+1),如果a、和b引用的是同一个数呢?可以通过gcc -S选项来查看,主要代码如下:代码根据C函数调用的机制,b会先进栈,然后是a,首先将a移动到eax寄存器,然后将a指向的整数值移动到eax寄存器,然后用同样的方法将b指向的整数值移动到edx寄存器,然后将b指向的值加1,移动到ecx,将b加载到edx寄存器,然后将ecx中的数据移动到b指向的内存位置(++(*b)),然后再费劲的将b指向的整数值加载到edx,计算调整后的值,并移动到ecx寄存器,然后将a的值 阅读全文
posted @ 2011-01-06 15:08 CuiXS 阅读(377) 评论(0) 推荐(0)
摘要:目前能获得一些功能鸟~~比如CPU厂商啊,支持的指令集啊,还有一些步进啊,型号啊什么的CPU缓存信息我用的枚举,有别的好办法没啊。。。。累死了。先写这一部分,接下来弄界面的。用VC + MinGW 阅读全文
posted @ 2010-12-31 18:07 CuiXS 阅读(326) 评论(0) 推荐(0)