Незабавно зареждане на знак в регистъра. 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