Мгновенная загрузка символа в регистр. MIPS

Мой учитель говорил, что вы можете просто загрузить символ в регистр следующим образом:

li $s2 "A"
li $s1 "0"

За исключением того, что когда я загружаю свой файл в Qtspim, он продолжает выдавать мне синтаксическую ошибку. Кто-нибудь знает, сказал ли мне мой учитель ложь, и если да, то как можно загрузить символ в регистр немедленными способами. Я знаю, как это сделать, если персонаж уже находится в данных.


person Hugh Craig    schedule 06.10.2014    source источник


Ответы (2)


Ваш учитель прав в том, что можно использовать символьные литералы. Но либо он дал вам неправильный синтаксис для этого, либо вы неправильно поняли его, когда он объяснил это.

Правильным синтаксисом было бы использование одинарных кавычек (вместо двойных кавычек, как в ваших примерах):

li $s2, 'A'
li $s1, '0'

Обратите внимание, что вы также пропустили запятые между операндами для li.

person Michael    schedule 06.10.2014
comment
Может быть, вы сделали что-то еще не так тогда. Символьные литералы в одинарных кавычках прекрасно работают как в QtSpim, так и в PCSpim. - person Michael; 06.10.2014

мои 2 цента за литералы (как значения, так и ссылки...)

.data

hello:  .asciiz "Hello, world!"

my_character : .byte 'a'

.text


li $s1, '0'
li $s2, 'A'

la $a0, my_character
la $a0, hello

попробуйте в MARS: при загрузке '0' вы увидите 30Hex, поскольку ascii равно 48.

введите здесь описание изображения

person ingconti    schedule 29.05.2021