Masm32 Как запустить? - Assembler
Формулировка задачи:
скачал masm32, сделал батник
Набираю код по книге Крупник "Изучаем ассемблер"
создался exeшник, но не работает. Что не так?
c:/masm32/bin/ml /c /coff "test.asm"
c:/masm32/bin/link /SUBSYSTEM:CONSOLE "test.obj"
.386 .model flat,stdcall .code start: mov eax, 8 add eax, 8 ret end start
Решение задачи: «Masm32 Как запустить?»
textual
Листинг программы
.386 .model flat, stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\kernel32.inc includelib \masm32\lib\kernel32.lib .data .code start: invoke ExitProcess, 0 end start
Объяснение кода листинга программы
- .386 - это директива, указывающая, что код написан для 32-битной системы.
- .model flat, stdcall - это директива, которая определяет модель памяти и стиль вызова функций. Здесь используется модель
flat
, что означает плоскую модель памяти, и стиль вызова функцийstdcall
. - option casemap:none - это директива, которая отключает отображение регистров в верхний регистр.
- include \masm32\include\windows.inc - это директива, которая включает в код библиотеку Windows API.
- include \masm32\include\kernel32.inc - это директива, которая включает в код библиотеку kernel32.
- includelib \masm32\lib\kernel32.lib - это директива, которая связывает библиотеку kernel32 с кодом.
- .data - это сегмент данных.
- .code - это сегмент кода.
- start: - это метка начала выполнения программы.
- invoke ExitProcess, 0 - это вызов функции ExitProcess с аргументом 0, что означает успешный конец работы программы. Это основные элементы кода, их номера от 1 до 10. Остальные элементы (с 11 по 20) не присутствуют в данном коде.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д