Я сейчас работаю над довольно большой программой сборки, это болтовня.В настоящее время он занимает более 700 строк кода.В моей программе есть две метки, моя программа использует эти метки для отслеживания определенных данных, которые перемещаются случайным образом.
Позвольте мне объяснить вам, что произошло.Работа, которую должна выполнять программа, большая, поэтому я стараюсь разбивать эти куски кода на куски.Я создаю отдельные проекты для всех функций, которые нужны моей программе, и когда они работают, я включаю их в основную программу.
У меня была одна из этих функций, выполненная только сейчас, и я интегрировал ее в свою программу.Эта функция находилась между двумя метками, о которых я говорил ранее.
Когда я пытался скомпилировать программу, я получал сообщение об ошибке:
ChatterBot.asm <22>.: EEEndLenght (это имя второй метки)
Метка на 633 строки дальше по строке 655, если я снова удалю функцию, ошибка исчезнет, я уверен, та же меткане появляется в новой функции, и я несколько раз менял ее имя
Кто-нибудь знает, почему это происходит и как я могу это исправить?
Обзор:
.386
.model flat,stdcall
option casemap:none
include \masm32\include\masm32rt.inc
include \masm32\include\masm32.inc
include \masm32\include\wsock32.inc
includelib \masm32\lib\wsock32.lib
system PROTO C, :PTR BYTE
SavePoly PROTO
.code
Start:
...
...
mov ecx, (EEEdnLength - Startl) ; line 22, with the label
...
...
Startl
...
...
GetNumb1And8 PROTO
Filleax PROTO
...
...
FSTR PROTO
recv PROTO
GetData PROTO, nread:DWORD
...
main proc
...
...
Rand proc
...
Rand endp
...
...
main endp
...
...
FSTR proc
...
...
FSTR endp
...
...
GetData proc nread:DWORD
...
...
GetData endp
...
...
end main
...
...
EEEdnLength:
...
...
ret
SavePoly endp
EndForError:
edd:
ret ; kthxbai
end Start
Изменить: теперь я смотрю на это так, я думаю, что я уже нашел, что не так, конец основной - это неправильно.Прошу прощения за трату вашего времени, ребята, это было действительно: конец главного, который испортил.