编写并调试一个段页式存储管理的地址转换的模拟程序。
首先设计好段表、页表,然后给出若干个有一定代表性的地址,通过查找段表页表后得到转换的地址。
要求打印转换前的地址,相应的段表,页表条款及转换后的地址,以便检查。
我设计的段表和页表如下:
代码:
#include <iostream>
#include <cstring>
#define Maxn 5
using namespace std;
int page_table[5] = {2,3,6,8,9};
int Seg_address[5] = {2,12,30,45,73};
bool page_state[10];
int address[100];
int tran_address[100];
int num;
int Seg_table_register[2];
typedef struct
{
int seg_address;
int seg_final_address;
} Box;
typedef struct
{
Box data[Maxn];
} Segment;
Segment seg_table;
void Seg_table()
{
Seg_table_register[0] = Seg_address[0];
Seg_table_register[1] = Maxn;
memset(page_s