我想模拟注册的工作,我声明注册类如下
class Register{
uint8_t reg_ax[2];
Register(){
reg_ax[0] = reg_ax[1] = 0;
}
uint16_t &ax(){ return (uint16_t &)reg_ax[0]; }
};
现在我可以像这样打印和编辑ax
(16位)的值:
Register regs;
cout << regs.ax() << endl;
regs.ax() = 5;
cout << regs.ax() << endl;
它工作得很好,但是现在如果我想打印和编辑al
以及我应该怎么做ah
的低和高部分(8 位)ax
?!我试过这个,但它不工作!
uint8_t &al(){ return reg_ax[1]; }
uint8_t &ah(){ return reg_ax[0]; }
现在这样做不会显示任何输出:
cout << regs.al() << endl;
有什么帮助吗?