从文本文件加载指令到模拟内存中,并显示前11个内存单元的内容

# -*- coding: utf-8 -*-
'''
程序功能:从文本文件加载指令到模拟内存中,并显示前11个内存单元的内容
文件格式:每行包含内存地址和指令,例如 "0 LOAD 100"
'''

# 初始化一个长度为1000的内存空间,每个元素初始为空字符串
men = [''] * 1000

def loadProgram(file):
    """
    从文件加载程序到内存中
    
    参数:
        file: 包含程序指令的文本文件路径
        
    返回:
        list: 包含已加载指令的内存列表
    """
    # 以只读模式打开文件
    fil = open(file, "r")
    
    # 循环读取文件的每一行
    while True:
        line = fil.readline()
        
        # 如果读到文件末尾,退出循环
        if line == '':
            break
            
        # 使用空格分割行内容,得到字段列表
        flds = line.split()
        
        # 提取第一个字段作为内存地址并转换为整数
        address = int(flds[0])
        
        # 提取第二个字段作为指令
        instruc = flds[1]
        
        # 将剩余字段(操作数等)添加到指令字符串中
        for fld in flds[2:len(flds)]:
            instruc = instruc + " " + fld
            
        # 将指令存储到对应的内存地址
        men[address] = instruc
        
    # 关闭文件
    fil.close()
    
    # 返回填充后的内存
    return men

# 加载程序文件到内存
loadProgram('sum100.txt')

# 打印前11个内存单元的内容
for i in range(11):
    print('主存单元', i, ':', men[i])

  

posted @ 2025-08-21 17:05  华腾智算  阅读(7)  评论(0)    收藏  举报
https://damo.alibaba.com/ https://tianchi.aliyun.com/course?spm=5176.21206777.J_3941670930.5.87dc17c9BZNvLL