Понятно, что для оперативной памяти я хочу использовать std::vector , но я сомневаюсь, что std::byte является правильным типом для всех видов регистров (регистров ЦП, аппаратных регистров и т. д.). В случае с регистрами ЦП это очень неоднозначно, но я явно склонен использовать здесь std::uint8_t (и std::uint16_t), поскольку регистры ЦП в основном используются для арифметических операций. Но есть также своего рода «регистры управления», которые не используются для арифметики, но хранят либо флаги, либо счетчики.
Другое возможное использование std::byte: для хранения текущей инструкции (которая закодирована в один или несколько байтов).
Я также прихожу к несогласованности, потому что std::byte содержит только 8 бит. Но регистры управления также могут быть длиннее 8 бит (например, регистр cr0 архитектуры IA32).
Может быть, я просто заморачиваюсь, но неясно для меня, если это допустимое использование std::byte. Стандарт гласит, что «
Код: Выделить всё
std::byteПодробнее здесь: https://stackoverflow.com/questions/791 ... n-emulator
Мобильная версия