Я пытаюсь отобразить «Hello World» (из примера, найденного в Интернете) в Mips и посмотреть, как это работает, но в итоге я получаю ошибки. У меня была первая ошибка: "spim: (парсер) Ярлык второй раз определяется в строке 6 файла C: Program Files (x86) main: # Выполнение начинается с метки« main »« ^ Чтобы исправить это, я повторно инициализировал и перезагружал. Затем я запускаю Qtspim, и я получаю следующую ошибку: «Инструкция ссылается на неопределенный символ в 0x00400028/Notepad ++/test.asm [0x00400028] 0x3c010000 lui $ 1, 0 [Приветствия]; 8: la $ a0, Приветствия # Адрес загрузки строка для печати в $ a0Mips: ошибка «Hello World»
Может кто-нибудь объяснить, что вызывает первую и вторую ошибку? Я просто пытаюсь проверить код, который я нашел в Интернете, и понять, как работает Qtspim, прежде чем я попытаюсь выполнить свое назначение. Я использую Notepad ++ на ОС Windows 08. Ваша помощь будет очень ценится. Беллоу код.
# Program: Hello, World!
.data # data declaration section; specifies values to be stored
# in memory and labels whereby the values are accessed
Greeting: .asciiz "\nHello, World!\n"
.text # Start of code section
main: # Execution begins at label "main"
li $v0, 4 # system call code for printing string = 4
la $a0, Greetings # load address of string to be printed into $a0
syscall # call operating system to perform operation;
# $v0 specifies the system function called;
# syscall takes $v0 (and opt arguments)
#This illustrates the basic structure of an assembly language program.
Я не знаю, что такое первая ошибка, но вторая означает, что нет метки под названием * Приветствия *. Я понимаю, что вы имели в виду * Приветствие *. – m0skit0
Oups !!!! Я этого не видел! Я исправил его, но теперь у меня есть еще одна ошибка: «Попытка выполнить не-команду на 0x00400030». Я знаю, что это связано с расположением памяти. Но я не могу понять, почему у меня эта новая ошибка. – T4000
Если вы продолжаете менять вопрос, мы никогда не закончим. – m0skit0