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

Материал из Викиконспекты
Перейти к: навигация, поиск
(Linux)
м (Компиляция: http://tsya.ru/)
 
Строка 36: Строка 36:
 
= Компиляция =
 
= Компиляция =
  
После компиляции у вас должен получится [http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D1%8B%D0%B9_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C объектный файл].
+
После компиляции у вас должен получиться [http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D1%8B%D0%B9_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C объектный файл].
  
 
=== Windows ===
 
=== Windows ===

Текущая версия на 10:17, 3 марта 2012

Необходимые программы[править]

Компилятор[править]

Yasm. Качаем отсюда.

Линковщик[править]

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     ; code section
    global _main  ; entry point must be global

_main:            ; entry point
    ret           ; exit

Linux[править]

section .text     ; code section
    global _start ; entry point must be global

_start:           ; entry point
    mov eax, 1    ; sys_exit system call
    mov ebx, 0    ; return code 0
    int 0x80      ; call kernel

Компиляция[править]

После компиляции у вас должен получиться объектный файл.

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

Запуск[править]

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

Полезные ссылки[править]