# -*- 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])