Печать индекса массива в MIPS с использованием lb и значения в регистре для ошибки адреса смещения / выравнивания - PullRequest
1 голос
/ 14 апреля 2020

Я пишу программу, которая, по сути (я думаю), является шифром Цезаря, однако сдвиг основан на настройке клавиатуры, а не на фактическом алфавите. Итак, буквы ввода будут: WERTYUIOPASDFGHJKLZXCVBNMQ, в то время как я хотел бы, чтобы он возвращал QWERTYUIOPASDFGHJKLZXCVBNM, если это имеет смысл. Если я введу строку W в качестве ввода, она вернет Q. Если я введу «JO YJRTR», она вернет «HI THERE». Я сделал это путем жесткого кодирования двух массивов в раздел данных. Я беру первый символ ввода и ищу его в первом массиве с al oop и счетчиком, чтобы посчитать, на какой букве я нахожусь. Затем я хочу использовать этот индекс / счетчик для печати той же буквы из второго массива, который должен быть «расшифрованным» письмом. Я пытаюсь сделать это, используя массивы, и я думаю, что я близок, но у меня есть проблема, когда я пытаюсь использовать индекс, чтобы вытащить букву из второго массива. (Я получаю ошибку с невыровненным адресом) Я помещу часть кода, где проблема ниже.

decode:         #want to add t4th index of arr 2 (in t5) to a string in t3
la $t5, Arr2        
add $t5, $t5, $t4   #move to appropriate index of arr2 ?? THIS CREATES ISSUE 
(I THINK)
sw $t3, 0($t5)      #(THIS IS WHERE PROGRAM STOPS)
addiu $s0, $s0, 1   #move to next letter in input word
lb $t7, 0($s0)      #load next letter of input word

Я не уверен, достаточно ли это информации, но любая помощь приветствуется, я действительно изо всех сил

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...