"""AUFGABE 4""" "Speicher" memory = [0x7, 0xB, 0xF, 0x1, 0x2, 0x8, 0x0, 0x6, 0x7, 0x9, 0x4, 0x5, 0xC, 0xD, 0xA, 0xB] "Register" registers = [0x0, 0x0, 0x0, 0x0, 0x0, 0x0] def printify(memory, registers): print("+---------------------------------------------------------------+") print("| MEMORY |") print("+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+") print("| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |") print("+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+") """print("| %X | %X | %X | %X | %X | %X | %X | %X | %X | %X | %X | %X | %X | %X | %X | %X |" % memory)""" print("|", end='') [print(" %X |" % x, end='') for x in memory] print() print("+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+") print() print("+-----------------------+") print("| REGISTER |") print("+---+---+---+---+---+---+") print("| 0 | 1 | 2 | 3 | 4 | 5 |") print("+---+---+---+---+---+---+") """print("| %X | %X | %X | %X | %X | %X |" % registers)""" print("|", end='') [print(" %X |" % x, end='') for x in registers] print() print("+---+---+---+---+---+---+") print() "INIT" print("INIT") printify(memory, registers) "Befehl 1" print("BEFEHL 1: R4 <- memory[E]") "R4 <- A" registers[4] = memory[0xE] printify(memory, registers) "Befehl 2" print("BEFEHL 2: R2 <- memory[-(R4)]") "R4 = 9" "R2 <- memory[9]" "R2 <- 9" registers[4] -= 1 registers[2] = memory[registers[4]] printify(memory, registers) "Befehl 3" print("BEFEHL 3: R0 <- memory[R2]") "R0 <- memory[9]" "R0 <- 9" registers[0] = memory[registers[2]] printify(memory, registers) "Befehl 4" print("BEFEHL 4: memory[+(R0)] <- R2 + 2") "R0 = A" "memory[A] <- 9 + 2" "memory[A] <- B" registers[0] += 1 memory[registers[0]] = registers[2] + 2 printify(memory, registers) "Befehl 5" print("BEFEHL 5: R3 <- R0 - R4") "R3 <- A - 9" "R3 <- 1" registers[3] = registers[0] - registers[4] printify(memory, registers) "Befehl 6" print("BEFEHL 6: R5 <- memory[memory[R3]]") "R5 <- memory[memory[1]]" "R5 <- memory[B]" "R5 <- 5" registers[5] = memory[memory[registers[3]]] printify(memory, registers) "Befehl 7" print("BEFEHL 7: R1 <- memory[(R5)+]") "R1 <- memory[5]" "R1 <- 8" "R5 = 6" registers[1] = memory[registers[5]] registers[5] += 1 printify(memory, registers) "Befehl 8" print("BEFEHL 8: memory[R5] <- memory[(R0)-]") "memory[6] <- memory[A]" "memory[6] <- B" "R0 = 9" memory[registers[5]] = memory[registers[0]] registers[0] -= 1 printify(memory, registers) "Befehl 9" print("BEFEHL 9: memory[memory[R3]] <- R0 + R5") "memory[memory[1]] <- 9 + 6" "memory[B] <- F" memory[memory[registers[3]]] = registers[0] + registers[5] printify(memory, registers) "Befehl 10" print("BEFEHL 10: R1 <- R1 - 2") "R1 <- 8 - 2" "R1 <- 6" registers[1] -= 2 printify(memory, registers) "Befehl 11" print("BEFEHL 11: R0 <- A") "R0 <- A" registers[0] = 0xA printify(memory, registers) "Befehl 12" print("BEFEHL 12: memory[R3 + 2] <- memory[R0]") "memory[1 + 2] <- memory[A]" "memory[3] <- memory[A]" "memory[3] <- B" memory[registers[3] + 2] = memory[registers[0]] printify(memory, registers) "Befehl 13" print("BEFEHL 13: R0 <- memory[R4 + 1]") "R0 <- memory[9 + 1]" "R0 <- memory[A]" "R0 <- B" registers[0] = memory[registers[4] + 1] printify(memory, registers) "Befehl 14" print("BEFEHL 14: memory[R0] <- memory[memory[R3]]") "memory[B] <- memory[memory[1]]" "memory[B] <- memory[B]" "memory[B] <- F" memory[registers[0]] = memory[memory[registers[3]]] printify(memory, registers) "Befehl 15" print("BEFEHL 15: memory[(R3)+] <- memory[(R4)+]") "memory[1] <- memory[9]" "memory[1] <- 9" "R3 = 2" "R4 = A" memory[registers[3]] = memory[registers[4]] registers[3] += 1 registers[4] += 1 printify(memory, registers) "Befehl 16" print("BEFEHL 16: R0 <- memory[(R5)+]") "R0 <- memory[6]" "R0 <- B" "R5 = 7" registers[0] = memory[registers[5]] registers[5] += 1 printify(memory, registers) "Befehl 17" print("BEFEHL 17: R5 <- R4 + R3") "R5 <- A + 2" "R5 <- C" registers[5] = registers[4] + registers[3] printify(memory, registers) "Befehl 18" print("BEFEHL 18: memory[(R3)-] <- memory[+(R0)]") "memory[2] <- memory[C]" "memory[2] <- C" "R0 = C" registers[0] += 1 memory[registers[3]] = memory[registers[0]] registers[3] -= 1 printify(memory, registers)