Обмен персонажей в MIPS - PullRequest
0 голосов
/ 22 апреля 2020

Мне нужно решить эту проблему: написать основную программу с длиной входной строки 40 символов, которая заканчивается 0. Программа вызывает процедуру 'change', которая заменяет каждое '#' или '$' в этой строке на '' и считает количество сделанных свопов. Основная программа должна попросить пользователя ввести строку, а затем, чтобы введенная строка напечатала обратные сообщения: «Измененная строка равна X» и «Число замен: Y», где X - измененная строка, а Y - число свопы сделаны. Я знаю это частично, но не целиком, и было бы очень полезно, если бы кто-то это знал .. Заранее спасибо ..

1 Ответ

0 голосов
/ 26 апреля 2020

Итак, ребята, тем временем я нашел решение и выложу весь код:)

`.data string: .asciiz" Входная строка: "string2: .asciiz" \ nЧанговая строка : "string3: .asciiz" \ nНомер изменений: "input: .space 40 counter: .word 0 .text .globl main main: li $ v0,4 la $ a0, системный вызов строки

li $ v0,8 la $ a0, вход li $ a1,40 syscall

la $ a0, вход jal смена sw $ v0, счетчик li $ v0,4 la $ a0, string2 системный вызов li $ v0,4 la $ a0, входной системный вызов li $ v0,4 la $ a0, string3 системный вызов li $ v0,1 lw $ a0, системный вызов счетчика

li $ v0,10 системный вызов. конец main

изменение: li $ v0,0 li $ t1,0 l oop: добавление $ t2, $ a0, $ t1 lb $ t3, 0 ($ t2) beq $ t3, $ ноль, выход beq $ t3, '#', метка beq $ t3, '$', метка j добавить метку: addi $ t3, $ ноль, '' sb $ t3, 0 ($ t2) addi $ v0, $ v0,1 add:
addi $ t1, $ t1, Выход из цикла 1
j: jr $ ra `

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