             var words = [Int32]()
 			var ascii = "" // Queue up ASCII representations of memory values to print after each line, similar to hexdump
             for i in 0..<numWords {
-                let address = location + 32*i
+                let address = location + 4*i // Loading in 4-byte chunks
                 let highest = self.memory[address] ?? 0
-                let higher = self.memory[address + 8] ?? 0
-                let lower = self.memory[address + 16] ?? 0
-                let lowest = self.memory[address + 24] ?? 0
+                let higher = self.memory[address + 1] ?? 0
+                let lower = self.memory[address + 2] ?? 0
+                let lowest = self.memory[address + 3] ?? 0
                 words.append(Int32(highest: highest, higher: higher, lower: lower, lowest: lowest))
 				ascii += "\(highest.toPrintableCharacter())\(higher.toPrintableCharacter())\(lower.toPrintableCharacter())\(lowest.toPrintableCharacter())"
             }

                    loadedValue = Int32(highest: 0, higher: 0, lower: 0, lowest: self.memory[address] ?? 0)
                case 1:
                    // Loading a half-word
                    loadedValue = Int32(highest: 0, higher: 0, lower: self.memory[address] ?? 0, lowest: self.memory[address + 8] ?? 0)
                case 2:
                    // Loading a word
                    let highest = self.memory[address] ?? 0
                    let higher = self.memory[address + 8] ?? 0
                    let lower = self.memory[address + 16] ?? 0
                    let lowest = self.memory[address + 24] ?? 0
                    loadedValue = Int32(highest: highest, higher: higher, lower: lower, lowest: lowest)
                default:
                    // Never reached

                    let lower = valueToStore.unsignedLower8()
                    let lowest = valueToStore.unsignedLowest8()
                    self.memory[address] = lower
                    self.memory[address + 1] = lowest
                case 2:
                    // Storing a word
                    let (highest, higher, lower, lowest) = valueToStore.toBytes()
                    self.memory[address] = highest
                    self.memory[address + 1] = higher
                    self.memory[address + 2] = lower
                    self.memory[address + 3] = lowest
                default:
                    // Never reached
                    fatalError("Invalid size of store word: \(size)")
