Первая программа ASM - PullRequest
       8

Первая программа ASM

0 голосов
/ 03 мая 2010

Здравствуйте, Я пытаюсь запустить свою первую программу ASM 8086 на MASM в 64-битной ОС Windows Vista.
Я поместил эту программу в мой редактор MASM:

.model small
.stack
.data
message   db "Hello world, I'm learning Assembly !!!", "$"

.code

main   proc
mov   ax,seg message
mov   ds,ax

mov   ah,09
lea   dx,message
int   21h

mov   ax,4c00h
int   21h
main   endp
end main

, и редактор MASM выдает мне такой вывод, что я не понял, что не так с программой: <code> Assembling: D:\masm32\First.asm D:\masm32\First.asm(9) : error A2004: symbol type conflict D:\masm32\First.asm(19) : warning A4023: with /coff switch, leading underscore required for start address : main _ Assembly Error

Где проблема с этим кодом? Это моя первая программа ASM, пожалуйста, помните. Спасибо:)

Ответы [ 2 ]

1 голос
/ 03 мая 2010

Платформы, которые часто используют C, предпочитают подчеркивание перед именами функций в зависимости от соглашения о вызовах и формата исполняемого файла (отсюда и предупреждение «with / coff switch»). Попробуйте добавить один к имени функции?

Кстати, 64-битная Vista даже поддерживает 16-битный код? Мне сказали, что это одна из тех вещей, которые упали ... см. http://en.wikipedia.org/wiki/Windows_on_Windows.

0 голосов
/ 04 мая 2010

Лучше всего вам установить виртуальную машину XP. Запустите этого ребенка, а затем установите MASM32 Тогда получите себе копию 16-битного компоновщика: 16-битный компоновщик

Тогда попробуйте еще раз.

Поскольку вы используете сегменты, вам требуется 16-битная сборка.

...