
汇编、调试与底层
文章平均质量分 55
「已注销」
这个作者很懒,什么都没留下…
展开
-
面向对象设计==虚函数设计?
见有人常把“面向对象设计”挂在嘴边,仿佛面向对象设计是多么高深,多么值得自豪的东西,其实,也就那么回事。面向对象,不见得适用于所有的场合。就比如底层通信模块而言,不见得非要用面向对象不可。但,什么样的设计,才是面向对象的?是不是只要使用了class,里面弄几个成员函数和成员变量就成了面向对象了?当然不是。面向对象,我把它概括为两个方面。一个是“神”,一个是“形”。只有“形、神”兼备的设计,才能称为原创 2005-05-11 01:18:00 · 2327 阅读 · 0 评论 -
由一篇BLOG看多态
vckbase上的一位朋友这样写道:http://blog.vckbase.com/Howto/archive/2006/08/02/21657.html有这样几条语句:B* bptr = new D;bptr->Comment(99) ; // 原作者的话: "标准多态行为"(*bptr).Comment(99); // 原作者的话: "这样也是多态?从结果来看,的确是"说说我的看法.首先原创 2006-08-06 20:19:00 · 3345 阅读 · 0 评论 -
小品: 关于"C++引用"
此文缘起我看了这篇文章:http://blog.youkuaiyun.com/newslxw/archive/2006/08/08/1038972.aspx 还记得当年读书时, 牛牛的C++老师告诉我: "引用, 其实就是别名, 与其所引用的对象完全等价". 可是, 我还是有这点疑问: "等价的含义, 是指的什么? 难道是说在最底层的实现上两者直接就是使用的同一个内存位置吗? " 比如下面的这段代码:原创 2006-08-08 23:16:00 · 3732 阅读 · 1 评论 -
孔乙己之四----虚函数(中)
本文作者:sodme本文出处:http://blog.youkuaiyun.com/sodme声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章开始前三行的作者, 出处以及声明信息. 谢谢.听着窗外的大粒雨点声睡觉, 是一种特别的享受. 这两天恰逢台风登陆, 广州也连日的雨下个不停. 在这样的雨夜里, 收拾一下心情, 决定继续用ASM研究C++的对象模型. 写文原创 2006-08-06 19:44:00 · 3641 阅读 · 0 评论 -
孔乙己之二----瞎扯是不对的
本文作者:sodme 本文出处:http://blog.youkuaiyun.com/sodme 声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章开始前三行的作者, 出处以及声明信息. 谢谢.在前文中, 已经提到, 有时, 对于下标1的访问偶尔的时候却是正确的, 这很让人费解, 笔者当时在未经过大脑思考的情况下甚至还猜测是不是地址对齐引起的. 事后想来, 这种原创 2006-07-16 16:14:00 · 2606 阅读 · 1 评论 -
孔乙己之一----this
本文作者:sodme本文出处:http://blog.youkuaiyun.com/sodme声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章开始前三行的作者, 出处以及声明信息. 谢谢.这是一个小问题, 孔乙己一把, 全当自娱. 今天在线上被问到一个问题, 描述如下:#include using namespace std;class MyClass{public:原创 2006-07-14 00:48:00 · 3619 阅读 · 0 评论 -
孔乙己之三----虚函数(上)
本文作者:sodme本文出处:http://blog.youkuaiyun.com/sodme声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章开始前三行的作者, 出处以及声明信息. 谢谢.终于发现以asm之角度观察和研究问题是如此有趣, 以至于开了头便罢不了手, 也罢也罢, 那就索性将快乐进行到底吧. 秉持一贯的孔乙己之风格, 这一次, 我们来看看c++虚函原创 2006-07-17 22:36:00 · 3709 阅读 · 0 评论 -
对标号地址的另一种相对寻址方式
汇编程序中, 对数据访问时, 通常是这样的:_asm{...DATA_LABLE: _emit 0x87 _emit 0xa0 _emit 0x49 _emit 0x90... mov ebx, dword ptr [DATA_LABLE]...}其中, 当程序编译之后, mov指令中的DATA_LABLE标号地址会被转成一个绝对地址. 而有时绝对地址这一点可能会对这原创 2006-05-25 23:18:00 · 2553 阅读 · 0 评论 -
由一个vc内嵌asm的BUG引出的...
在语法上, 我们通常认为以下的两条语句是等价的:mov ecx, offset DATA_LABLE //其中DATA_LABLE是数据定义标签lea ecx, DATA_LABLE而更进一步, 我们也会认为以下两句是等价的:mov ecx, ebp-8lea ecx, [ebp-8]第一种, 用的是存储器寻址方式; 而第二种, 用的是寄存器寻址和寄存器间接寻址方式. 让我意想不到的是,原创 2006-05-24 01:39:00 · 4374 阅读 · 0 评论 -
关于Linux AT&T Asm的零星小结
本文作者:sodme本文出处:http://blog.youkuaiyun.com/sodme声明:本文可以不经作者同意任意转载、复制、传播,但任何对本文的引用均须保留本文的作者、出处及本行声明信息!谢谢!前段时间作性能优化时, 研究过一段时间的linux AT&T asm, 一点体会写出来与大家共享.我们知道linux的asm采用的是AT&T汇编语法, 关于它的详细文档在以下的地址可以获得:http://a原创 2006-05-19 00:17:00 · 5051 阅读 · 0 评论 -
Asm 的乐趣
近日来的工作与asm打了很多交道, 虽然以前也曾分析过,写过一点点的asm, 但都没有具体应用到实际的项目中, 最多只能算是个人兴趣罢了, 但现在开始真正把它应用到项目中, 又有了一些与以前完全不一样的感觉.我学到了或是更加深刻理解了以下的知识:1.函数调用过程中的参数传递以及堆栈平衡, main函数堆栈的特殊之处2.函数内部变量的空间申请和释放方法;3.跳转指令后所跟的跳转地址在三种不同的情况下原创 2006-05-18 00:52:00 · 2984 阅读 · 0 评论 -
花指令
本文作者:sodme本文出处:http://blog.youkuaiyun.com/sodme声明:本文可以不经作者同意任意转载、复制、引用。但任何对本文的引用,均须注明本文的作者、出处以及本行声明信息。可能很多人都听说过花指令,但限于平时的开发所限,可能较少接触到。日前,跟同事讨论了一些有关花指令的问题,现将自己的体会总结一下。这篇文章将讨论以下问题:一、什么是花指令?它的原理是什么?二、在什么地方使用花指原创 2006-02-16 02:08:00 · 5305 阅读 · 0 评论 -
孔乙己之五----虚函数(下)
本文作者:sodme本文出处:http://blog.youkuaiyun.com/sodme声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章开始前三行的作者, 出处以及声明信息. 谢谢.本文所需代码可从以下地址获得( 此地址含有多继承c++和asm代码 ):http://docs.google.com/Doc?id=dcb4rbgm_51cqf52xff原创 2006-08-07 21:44:00 · 2961 阅读 · 0 评论