小编GiM*_*GiM的帖子

x86 RCL / RCR指令的实际应用是什么?

我对实际应用感兴趣,即使它们已不符合现代标准。

关于ROL和ROR,这里也有类似的问题,但对于RCL / RCR并没有真正回答。

我可以为RCL,带有操作数1的RCR提出一些应用程序(即,对于某些LFSR),但是我想不出任何带有非1操作数的明智的应用程序

有人能启发我吗?

PS示例代码非常受欢迎。

更新1:如Peter Cordes以下注释中所述,一个(非常明显的)应用程序是shrd / shld。(IIRC rcl / rcr指令已经存在于8080中)

也许上面的“非1”不是很清楚,但是请记住,我对用法最感兴趣,其中操作数是!= 1(RC(L|R) REG, cc等于> 1或== cl)。

x86 assembly bit-manipulation x86-64 bit-shift

5
推荐指数
1
解决办法
166
查看次数

禁止下载类C++中的字段

和朋友一起,我们最近遇到了以下问题.有一个基类:

class A {
public:
    A() : foo(10) {}
    virtual int getFoo() const { return foo; }

protected:
    int foo;
};
Run Code Online (Sandbox Code Playgroud)

一位朋友实现了一个源自上面的类.

class B : public A {
public:
    void process() { foo = 666; }
protected:
    //int foo;
};
Run Code Online (Sandbox Code Playgroud)

不幸的是,他还在后代课程中添加了字段foo(注释行).所以下面的代码.

#include <iostream>

int main()
{
    A* aaa= NULL;
    if (1) {
        B* bbb = new B;
        bbb->process();
        aaa = bbb;
    }

    std::cout << aaa->getFoo() << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

印刷10.

这不是问题,因为这将完全重新设计,并且将来不会发生这样的事情.

我只是想知道,你知道任何(便携式)技巧或语言模式(除了明显的getter/setter;顺便说一下,他们实际上是foo …

c++ inheritance members

1
推荐指数
1
解决办法
161
查看次数