Участник:Mityada/Ассемблер — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 32: Строка 32:
 
     mov ebx, 0
 
     mov ebx, 0
 
     int 0x80
 
     int 0x80
 +
 +
= Компиляция =
 +
 +
=== Windows ===
 +
yasm -f win32 test.asm
 +
 +
=== Linux ===
 +
yasm -f elf32 test.asm
 +
 +
= Линковка =
 +
 +
=== Windows ===
 +
link.exe /subsystem:console /entry:main test.obj
 +
 +
=== Linux ===
 +
ld -o test test.o
 +
 +
= Запуск =
 +
 +
Если вы все сделали правильно, программа должна запускаться и завершаться без ошибки.

Версия 22:21, 2 марта 2012

Необходимые программы

Компилятор

Yasm. Качаем отсюда http://yasm.tortall.net/.

Линковщик

Windows

link.exe из Microsoft Visual Studio. Лежит в "%Program Files%/Microsoft Visual Studio 10.0/VC/bin/". При запуске может ругаться на нехватку mspdb100.dll, берем из "%Program Files%/Microsoft Visual Studio 10.0/Common7/IDE/".

Linux

ld из пакета binutils

Текстовый редактор

На ваш вкус и цвет.

Простейшая программа

Windows

section .text
    global _main

_main:
    ret

Linux

section .text
    global _start

_start:
    mov eax, 1
    mov ebx, 0
    int 0x80

Компиляция

Windows

yasm -f win32 test.asm

Linux

yasm -f elf32 test.asm

Линковка

Windows

link.exe /subsystem:console /entry:main test.obj

Linux

ld -o test test.o

Запуск

Если вы все сделали правильно, программа должна запускаться и завершаться без ошибки.