Size: a a a

Ассемблер

2021 September 05

d

disba1ancer in Ассемблер
Если ты задал такой вопрос, значит твой акк взломан...
источник

БЗ

Богдан Зараник... in Ассемблер
Да я про код.)
источник

d

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

E

Entusiast in Ассемблер
А что в нём не так?
источник

БЗ

Богдан Зараник... in Ассемблер
Ага.) Вон та строчка, выделенная. Меня интересует, что там конкретно происходит. Указатель выделяется или нет и т.п.
источник

d

disba1ancer in Ассемблер
Выделил 4 байта в секции данных
источник

БЗ

Богдан Зараник... in Ассемблер
Почему дальше [ A ] в скобочках?
источник

d

disba1ancer in Ассемблер
Потому что A это всего лишь метка, это просто адрес той области
источник

БЗ

Богдан Зараник... in Ассемблер
Если бы я огласил A dd 0, то было бы не так. Но тут тоже вроде метка...
источник

d

disba1ancer in Ассемблер
После dd можно указать значение которым ты инициализируешь, знак вопроса значит что такого значения ты не предоставил
источник

E

Entusiast in Ассемблер
...и в итоге туда вставляется 0
dd 0 == dd ?
источник

d

disba1ancer in Ассемблер
Вот тут хз, не шарю
источник

БЗ

Богдан Зараник... in Ассемблер
Нууу ... это понятно. Вопрос в том, почему в первом случае(без инициализации) потом нужно  использовать [ ] , а во втором случае - не нужно. Сори, просто у меня опыт asm < 5 часов.)
источник

d

disba1ancer in Ассемблер
Где не нужно?
источник

E

Entusiast in Ассемблер
A dd ? ; A dd 0
Прикрутить к адресу метку A, чтобы было легче обращаться к адресу.
Т.е если A будет по виртуальному адресу 0x400000, тогда можно сделать:
dd ? ; 0x400000
dd ? ; 0x400004

mov dword[0x400000], 12
mov dword[0x400004], 10

mov ecx, dword[0x400000]
add ecx, dword[0x400004]

Но т.к неудобно рассчитывать, по какому адресу разместятся данные - легче просто указать ему метку, и компилятор сам это вычислит:
A dd ?

mov dword[A], 12 ; Компилятор: mov dword[0x400000], 12

Квадратные скобки [] означают - взять значение по адресу\положить значение по адресу
Поэтому когда ты определяешь метку - скобки не нужны
источник

d

disba1ancer in Ассемблер
Квадратные скобки это способ сказать ассемблеру что ты хочешь что-то сделать с данными лежащими по адресу, метка это и есть адрес
источник

БЗ

Богдан Зараник... in Ассемблер
Типа * в С? Указатель?
источник

ДЦ

Дмитро Цимбалюк... in Ассемблер
типа того
источник

ДЦ

Дмитро Цимбалюк... in Ассемблер
но не только
источник

d

disba1ancer in Ассемблер
Типа того, но метка это просто константа означающая адрес, само значение указателя, если так можно выразиться
источник