编写并调试一个段页式存储管理的地址转换的模拟程序。
首先设计好段表、页表,然后给出若干个有一定代表性的地址,通过查找段表页表后得到转换的地址。
要求打印转换前的地址,相应的段表,页表条款及转换后的地址,以便检查。
我设计的段表和页表如下:

代码:
#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

本文介绍了一次段页式存储管理的模拟程序设计与调试过程。通过创建段表和页表,针对不同地址进行转换,以验证地址转换逻辑。程序会显示转换前的地址、对应的段表和页表项以及转换后的地址,帮助检查正确性。示例中,部分地址未找到对应段或页,而37号地址成功进行了转换。
最低0.47元/天 解锁文章
730





