diff --git a/README.md b/README.md deleted file mode 100644 index a2a07a7..0000000 --- a/README.md +++ /dev/null @@ -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']) \ No newline at end of file