Size: a a a

Ассемблер

2020 April 23

AG

Alexander Galileev in Ассемблер
Могу предположить, что это просто GCC так делает - в целях оптимизации.

As an example, here′s a typical x86 assembly language function prologue as produced by the GCC
источник

AG

Alexander Galileev in Ассемблер
Неоднократно замечал, что в листинге дизассемблера сишных программ всегда именно так - под локальные переменные место отводится командой sub esp, а потом вручную командами mov записываются переменные по своим местам.
источник

AG

Alexander Galileev in Ассемблер
Возможно, это также как-то связано с необходимостью выравнивания переменных в стёке.
источник

AG

Alexander Galileev in Ассемблер
section .data
masks  dw  0x0400

Что совсем странно, на эту строку ассемблер ругается точно так же:

error: `dw 0x0400' is not a valid segment size; must be 16, 32 or 64

Тут я уже совсем в догадках теряюсь. Пример из руководства NASM:

dw    0x1234              ; 0x34 0x12

https://www.nasm.us/doc/nasmdoc3.html#section-3.2.1

Т.е ровно то же самое, но у меня не работает.
источник

G

Gymmasssorla in Ассемблер
Saenro T
Ты имел ввиду pop-pop-pop?
Нет, push
источник

G

Gymmasssorla in Ассемблер
зачем эта строчка нужна?
источник

ST

Saenro T in Ассемблер
Другими словами, зачем восстанавливать стек?
источник

G

Gymmasssorla in Ассемблер
Saenro T
Другими словами, зачем восстанавливать стек?
что такое восстанавливать стек?
источник

ST

Saenro T in Ассемблер
Избавиться от лишнего, когда оно уже не пригодится.
источник

ST

Saenro T in Ассемблер
Иначе, рано или поздно, данные из стека перепишут собой то, что под ним. (код или данные)
источник

G

Gymmasssorla in Ассемблер
Saenro T
Иначе, рано или поздно, данные из стека перепишут собой то, что под ним. (код или данные)
что значит "под ним"?
источник

AG

Alexander Galileev in Ассемблер
@Saenro Ты не понял, о чём речь. Он говорил не об "очистке" стека после вызова подпрограммы, а о выделении места под локальные переменные в её (подпрограммы) начале.
источник

G

Gymmasssorla in Ассемблер
Alexander Galileev
@Saenro Ты не понял, о чём речь. Он говорил не об "очистке" стека после вызова подпрограммы, а о выделении места под локальные переменные в её (подпрограммы) начале.
+
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
тут наглядней, с картинками
источник

ST

Saenro T in Ассемблер
Огонь
источник
2020 April 24

AB

Artöm Bakri Al-Sarmini in Ассемблер
Несколько мувов могут исполняться параллельно
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
это как? расскажи
источник

AB

Artöm Bakri Al-Sarmini in Ассемблер
На нескольких конвейерах, если обращения к разной памяти
источник