【发布时间】:2016-03-16 18:43:19
【问题描述】:
我目前正在编写一个程序,它使用一个类来模拟 8 位微控制器的操作。我必须创建 5 个成员函数 - setPC、show、loadFile、step 和构造函数。我在程序的某些方面遇到了困难,但目前,特别是显示成员功能。这是我到目前为止所拥有的:
void cpu::show(void)
{
cout << "AccA = " << hex << static_cast<int>(AccA) << endl;
cout << "AccB = " << hex << static_cast<int>(AccB) << endl;
cout << "PC = " << hex << static_cast<int>(PC) << endl;
cout << "SP = " << hex << static_cast<int> (SP) << endl;
cout << "X = " << static_cast<int> (X) << endl;
cout << "Memory = " << hex << Memory << endl;
}
该成员函数应该以 2 位十六进制格式显示寄存器和内存的内容。它应该以 16 行和列显示内存,每行的起始地址显示在每行的开头(然后该行的其余部分可以为空白)。我不确定如何在行和列中显示内存内容。我将不胜感激有关如何执行此操作的任何指示。
这是程序的头文件:
#ifndef CPU_H
#define CPU_H
#define MEMSIZE 256
class cpu
{
private:
unsigned char AccA;
unsigned char AccB;
unsigned char PC;
unsigned char SP;
unsigned char X;
bool Z;
unsigned char Memory[MEMSIZE];
public:
cpu();
void loadFile(const char *fileName);
void setPC(unsigned char aAddress);
bool step(void);
void show(void);
};
#endif // CPU_H
【问题讨论】:
-
你对
hex << static_cast<int>(AccA)有什么期望? -
内存是您的数据应该存储的位置?如果是,您是否打算将其作为字符数组的一维而不是作为字符数组的二维数组?
-
AccA 中的值。我在将十六进制值加载到程序计数器(PC)时遇到问题,它将作为符号输出 - 将其设置为 static_cast
将其输出为十六进制。 -
@Sanaa 您实际上是在询问如何正确格式化行和列的
Memory输出吗? -
@πάνταῥεῖ 是的,如何在行和列中显示内存
标签: c++ class rows member-functions