Skip to content

Instantly share code, notes, and snippets.

@bunyk
Last active August 29, 2015 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bunyk/040df8bc77440aee8471 to your computer and use it in GitHub Desktop.
Save bunyk/040df8bc77440aee8471 to your computer and use it in GitHub Desktop.
Hello GAS!
# Все що йде після дієза - коментар
# Все що йде після крапки - директива ассемблера.
# Тобто не код програми, а інструкції про те як її будувати.
.section .data # розділ з даними
# Поки що порожній
.section .text # розділ з текстом програми
.global _start # оголосити що мітка _start буде видимою для лінкера
# Текст перед двокрапкою - це мітка. Мітка це символьне позначення якоїсь адреси.
_start: # Запам’ятати цю адресу коду, і замінити мітку _start на неї.
movl $1, %eax # Помістити 1 в регістр eax. 1 - номер команди ядра "вихід".
movl $0, %ebx # Помістити 0 в регістр ebx. Це буде код повернення
# Запустити системне переривання 0x80 (system call)
# виконує команду ядра номер якої знаходиться в eax,
# і в нашому випадку (exit) бере додатковий параметр з ebx.
int $0x80
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment