2012-04-12 3 views
0

다음과 같은 어셈블리 프로그램이 있습니다.조립 - 매크로의 일부 문제

;======================= 
.MODEL SMALL 
.STACK 100h 

putchar MACRO char 
    label: 
    mov dl, char 
    mov ah, 2 
    int 21h 
ENDM 
.CODE 
    MAIN Proc 
     putchar 'A' 
     putchar 'S' 
     putchar 'M' 
     mov ah, 4ch 
     int 21h 
    MAIN ENDP 

내 프로그램이 컴파일되지 않습니다.

P/S : putchar 매크로를 수정할 수 없습니다.

+0

오류 메시지는 어떻습니까? 또한 무엇을 시도 했습니까? –

답변

0

매크로의 label: 레이블이 여러 번 (매크로가 확장 될 때마다) 정의되는 것이 문제 일 수 있습니다. 레이블을 제거해야합니다 (실제로 레이블이 존재할 이유가 없습니다). 또는 로컬 레이블을 사용해야합니다. 이 페이지에서 "지역 레이블"을 검색하십시오 : http://webster.cs.ucr.edu/Page_TechDocs/MASMDoc/ProgrammersGuide/Chap_09.htm.

putchar 매크로를 수정할 수없는 경우이 코드를 컴파일하는 방법을 알 수 없습니다.

+0

예, 내 프로그램 안에 'putchar'매크로에 Local 지시문을 추가했습니다. 모두에게 감사드립니다. – Brian

+0

@BryanAdams :이 답변으로 문제가 해결되면 수락 된 답변으로 표시해야합니다 (체크 표시를 클릭하십시오). –

+0

예, 귀하의 답변이 최선이라고 표시했습니다. – Brian