Как скомпилировать DOS-программы, используя MASM или FASM - PullRequest
1 голос
/ 12 октября 2011

Я хочу скомпилировать простую программу с использованием ассемблеров, таких как MASM или FASM.

Ideal
model small
Stack 256

Dataseg

    str1 db 'hello','$'

Codeseg
Startupcode

   lea dx, [str1]
   mov ah, 09h
   int 21h

   lea dx, [ent]
   mov ah, 09h 
   int 21h

exitcode
END

Этот источник собран на TASM в моем колледже, но как это сделать с помощью MASM или FASM?

1 Ответ

0 голосов
/ 18 октября 2011

Прерывания могут использоваться только в 16-битных версиях Windows. Эти вызовы int 21h должны быть заменены эквивалентными вызовами функций Win32. Также, где определяется переменная ent? Если вы хотите скомпилировать с Visual Studio, тогда установите пользовательские правила сборки на MASM, перейдите к настройкам компоновщика и установите для подсистемы Windows и точку входа в main. Строй и наслаждайся. Увидеть Настройка Visual Studio 2010 для программирования на MASM32 .

Это соответствующий список кодов MASM:

.386
.model small
.stack 256

.data
  str1 db 'hello','$'

.code
main:
  lea dx, [str1]
  mov ah, 09h
  int 21h

  lea dx, [ent]
  mov ah, 09h 
  int 21h
end main
...