Моделирование регистров микрокомпьютера в памяти?

В качестве небольшого побочного проекта я создавал более старый эмулятор процессора микрокомпьютера, в основном основанный на архитектуре 8080-х годов. Его 8-битные регистры общего назначения могут (согласно википедии) использоваться как три пары 16-битных регистров, а также в обычном 8-битном режиме. И вот моя проблема.

Моя первая попытка смоделировать это была байты и шорты с отдельными именами, которые работали нормально, пока я не перечитал страницу со спецификациями и не обнаружил, что 16-битные регистры на самом деле не являются их собственностью. К сожалению.

Сейчас я пытаюсь создать массив байтов с одним местоположением для каждого 8-битного регистра и двумя местоположениями, зарезервированными для указателей стека / команд. Это работает очень хорошо и хорошо для 8-битных регистров, и это намного меньше хлопот, но на самом деле я не знаю, как преобразовать два байта в короткий в памяти. Это вообще возможно? Если нет, есть ли у вас какие-либо предложения о том, как еще это сделать?

0

Решение

Решается путем приведения адреса первого байта в 16-битном регистре к пустому указателю и обратно к короткому. Не очень безопасный для типов, но эй, это работает. Видимо я просто гуглил не те вещи.

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]