nihonium
/
mipt_clang
Archived
1
0
Fork 0
master
nihonium 3 years ago
parent eeb7752c6d
commit fd4c26850b
No known key found for this signature in database
GPG Key ID: 0251623741027CFC

@ -41,14 +41,14 @@ result in eax register (number of printed arguments)
* x resb(w/d/q) 1 * x resb(w/d/q) 1
* В глобальных переменных - нуль (по умолчанию) * В глобальных переменных - нуль (по умолчанию)
* section (segment - устар.) * section (segment - устар.)
``` ```
.text (код) .text (код)
.data (иниц. данные) .data (иниц. данные)
.rdata (константы) .rdata (константы)
.bss (неиниц. данные) .bss (неиниц. данные)
``` ```
* .bss хранится в виде размера (выделяется в момент запуска) * .bss хранится в виде размера (выделяется в момент запуска)
``` ```
section .text section .text
push push
push push
@ -57,11 +57,13 @@ result in eax register (number of printed arguments)
str db '%d',0 str db '%d',0
section .bss section .bss
x resd 1 x resd 1
``` ```
* global (например, main) * global (например, main)
```
global main ```
``` global main
```
* Добавляет подчеркивания к меткам, _main, например (M$ only) * Добавляет подчеркивания к меткам, _main, например (M$ only)
* Вместо линковки вызываем gcc (gcc знает, где стандартная библиотека) * Вместо линковки вызываем gcc (gcc знает, где стандартная библиотека)
* Конвенция fastcall (часть аргументов через регистры, 6 регистров для Linux, в прямом порядке, прочее - в стек в обратном) * Конвенция fastcall (часть аргументов через регистры, 6 регистров для Linux, в прямом порядке, прочее - в стек в обратном)