2012-04-12 4 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» внутри моей программы, это сработало. Спасибо всем. – Brian

+0

@BryanAdams: Если этот ответ решил вашу проблему, вы должны отметить его как принятый ответ (нажмите галочку). –

+0

Да, я отметил, что ваш ответ лучше. – Brian

 Смежные вопросы

  • Нет связанных вопросов^_^