作为一个小项目,我一直在创建一个老式的微型计算机CPU仿真器,主要基于8080的架构。它的8位通用寄存器可以(“according to wikipedia”)用作“三个16位寄存器对”,以及常规的8位模式。这是我的问题。建模微机寄存器在内存中?
我的第一次尝试建模这是个人命名的字节和短裤,它工作正常,直到我重新阅读specs页面,发现16位寄存器实际上并不是他们自己的东西。哎呀。
我现在想要的是一个字节数组,每个8位寄存器有一个位置,并且为堆栈/指令指针保留两个位置。这对于8位寄存器来说非常好用,而且管理起来很麻烦,但我实际上并不知道如何将两个字节转换为内存中的短暂内容。这甚至有可能吗?如果没有,你有什么建议如何做到这一点?
考虑使用联合。或者如果你想直接使用内存表示,一个指针。 –
呃,我将如何去做一个指向不同类型的两个变量的指针?我仍然在学习C++魔术。 – Lexusjjss
基本上你会有两个不同类型的指针和相同的内存地址。我不确定C++有多少推荐它用于这个任务。然而,这在C中是微不足道的,因为在C中裸露的编程模型与您试图模拟的那种硬件架构之间存在相似之处。当然,这种指针方法需要你的仿真和主机结构具有相同的字节序列......在目前这个时候很有可能。 –