"main.asm"파일에 포함되어야하는 "* .asm"파일이 다릅니다. 제가 직면 한 문제는 : 많은 파일에서 "루프", "forLoop", "whileTag"등과 같은 레이블을 선언했습니다 ... 동일한 방식으로 (즉, 같은 이름으로) 시도 할 때 %는 "file1.asm"을 포함하고 %는 "file2.asm"을 포함하므로 컴파일 오류가 발생합니다. 동일한 라벨을 두 번 선언 할 수 없다 (즉, file1.asm 및 file2.asm, 둘 다 "loopHere"라벨이 선언되어 있음). 어떻게 해결할 수 있습니까? 감사NASM 어셈블러, 라벨을 두 번 정의하는 방법은 무엇입니까?
지역 레이블 문제는 :
.label1
;staff
이제 2 파일 : 내가
이 파일 1이 말
;code that uses label1
.label1 ; definition after usage
을 이제 경우 I :
%include "file1.asm"
%include "file2.asm"
결과 main.asm은 다음과 같습니다
.label1
;staff
;code that uses label1
.label1 ; definition after usage
3 행의 코드가 실제로 수동
NASM에서 라인에서 라인 하나 안 하나에 4
견적을 LABEL1 사용합니다 단일 마침표로 시작하는 레이블은 지역 레이블로 취급됩니다. 이는 이전의 비 국지 레이블과 연관됨을의 L합니다. 1
파일 :
file1: ; add this label .label1 ;staff
이제 2 파일 :
내 나쁜 은, 난 그냥 경우 실현
file2: ; add this label
;code that uses label1
.label1 ; definition after usage
모든 위대한 작품! 지역 레이블
file1.label1
file2.label1
나는 각 레이블에 대한 새로운 이름을 가지고 올 것입니다,하지만 난 쓰기 각 루프에 대한 새로운 루프 이름을 발명 편안하지 않습니다, 라벨 고유하게 NASM을 알 수있는 방법이 있어야합니다. – Fresco
[local labels] (http://www.nasm.us/doc/nasmdoc3.html#section-3.9)으로 해결할 수 있습니다. – rkhb
링크를 포함하지 말고 링크를 포함 할 수도 있습니다. – Jester