2014-11-12 7 views
2

Я записываю программу в Y86, но я все время получаю сообщение об ошибке «не могу найти метку» для моих строк кода, устанавливающих стек и базовый указатель. Мой код:Ошибка «find label» в компиляторе Y86

.pos 0 

init: 
    irmovl Stack, %esp //Set up stack pointer 
    irmovl Stack, %ebp //Set up base pointer 
    call main  //call main program 
    halt   //Terminate program 

Который, как он появляется в моих записях, но когда я пытаюсь скомпилировать, я получаю

Error on line 8: Can't find label 
Line 8, Byte 0x0006: irmovl stack, %esp //Set up stack pointer 
Error on line 9: Can't find label 
Line 9, Byte 0x000c: irmovl stack, %ebp //Set up base pointer 

Я попытался поставив .POS 0 строку внутри функции инициализации (Я думал, что это может помочь), а также просто соединить строку init: все вместе, но я все равно получаю ту же проблему.

ответ

3

Возможное решение:

Если у вас есть метка стека, определенные в нижней части файла, попробуйте создать дополнительную пустую строку после нее. Я буквально просто имел ту же проблему и создавал пустую строку после того, как лейбл Stack исправил проблему.

Как и в сторону:

Это совершенно удивительно, что это единственный результат поиска я наткнулся по поводу этой ошибки.