Delete 'README.md'

pau8jc2mi 1 month ago
parent c15f90fdd8
commit 41f3fcaeaf

@ -1,60 +0,0 @@
class VonNeumannMachine:
def __init__(self,memory_size=256):
self.memory = [0] * memory_size
self.pc = 0
self.registers = {'A':0,'B':0,'C':0}
self.halted = False
def load_program(self,program):
for i,val in enumerate(program):
self.memory[i]=val
def execute_instruction(self,instruction):
if not instruction or instruction == 0:
return
parts = instruction.split()
opcode = parts[0]
operands = parts[1:] if len(parts) > 1 else[]
if opcode == 'LOAD':
reg, addr = operands[0], int(operands[1])
self.registers[reg] = self.memory[addr]
elif opcode == 'ADD':
reg1, reg2 = operands[0], operands[1]
self.registers[reg1] += self.registers[reg2]
elif opcode == 'MUL':
reg1, reg2 = operands[0], operands[1]
self.registers[reg1] *= self.registers[reg2]
elif opcode == 'STORE':
addr, reg = int(operands[0]), operands[1]
self.memory[addr] = self.registers[reg]
elif opcode == 'JMP':
addr = int(operands[0])
self.pc = addr-1
elif opcode == 'HALT':
self.halter = True
def run(self):
while not self.halted and self.pc < len(self.memory):
current = self.memory[self.pc]
if isinstance(current, str):
self.execute_instruction(current)
self.pc += 1
program = [
"JMP 1",
"LOAD A 8",
"LOAD B 9",
"ADD A B",
"LOAD C 10",
"MUL A C",
"STORE 11 A",
"HALT",
5,
3,
2,
0
]
vm = VonNeumannMachine()
vm.load_program(program)
vm.run()
print("\n最终结果")
print("寄存器A的值", vm.registers['A'])
print("内存地址11的值", vm.memory[11])
print("寄存器B的值", vm.registers['B'])
print("寄存器C的值", vm.registers['C'])
Loading…
Cancel
Save