Я хочу, чтобы имитировать работу над регистром, я объявляю класс Регистра, как следоватьИмитировать регистр процессора?
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;
Любая помощь?
Что не работает? Любые сообщения об ошибках? –
ДЕЙСТВИТЕЛЬНО работает? –
никаких ошибок и компиляции, но do 'cout << res.al() << endl;' ничего не печатает! –