Size: a a a

Ассемблер

2021 July 16

E

Entusiast in Ассемблер
Нет. Зачем?
Метку просто сделать с прологом\эпилогом
источник

A

Aleksandr in Ассемблер
Обычно, секции для всех функций сразу
источник

J

J in Ассемблер
Хм
источник

J

J in Ассемблер
Например функции
_start
print_char
exit

Для каждого делать по секции?
источник

E

Entusiast in Ассемблер
section '.code' code readable executable

_start:
call print_char
call exit
ret

print_char:
ret

exit:
ret
источник

J

J in Ассемблер
А что за code после '.code'
источник

E

Entusiast in Ассемблер
Очевидно, что секция с кодом))
источник

J

J in Ассемблер
Да, но это какое то ключевое слово, или там можно писать все что угодно
источник

E

Entusiast in Ассемблер
Где писать?
источник

J

J in Ассемблер
section '.code' codecode readable executable
источник

J

J in Ассемблер
Почему не
section '.code' readable executable
источник

E

Entusiast in Ассемблер
Это специальная директива FASM, которая указывает, что для секции нужно поставить флаг IMAGE_SCN_CNT_CODE
источник

J

J in Ассемблер
А понял
источник

J

J in Ассемблер
источник

A

Aleksandr in Ассемблер
Почитай строение PE файла. Многого поначалу не поймешь, но представление появится
источник

E

Entusiast in Ассемблер
Потому что так правильно. executable указывает, что секция может исполняться в памяти, а code показывает, что тут секция с исполняемым кодом... Просто это так нужно)
источник

A

Aleksandr in Ассемблер
Можно и без code, просто readable executable
источник

E

Entusiast in Ассемблер
"IMAGE_SCN_MEM_EXECUTE is the one that is actually used by the PE loader to set up page permissions. IMAGE_SCN_CNT_CODE is not used, I guess it's just a descriptive flag."
источник

J

J in Ассемблер
источник

J

J in Ассемблер
PE это для винды так?
источник