Size: a a a

Ассемблер

2020 May 18

A

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

VR

Vartan RedMan in Ассемблер
+
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
это тот чар который надо ввести
источник

VR

Vartan RedMan in Ассемблер
да
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
после ввода этот чар оказывается в регистре cl. чему равно cl?
источник

VR

Vartan RedMan in Ассемблер
43
источник

A

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

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
дальше идет sub cl,42
источник

A

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

VR

Vartan RedMan in Ассемблер
1
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
дальше, movzx, что делает эта инструкция?
источник

VR

Vartan RedMan in Ассемблер
все биты дальше cl обнуляются
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
точнее все дальше 8
источник

VR

Vartan RedMan in Ассемблер
да
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
у нас в ebp  в данном случае мусор. нам надо значение в маленьком регистре поместить в большой регистр. простым мовом это не сделать, вот для этого mov(zero extendet)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
итого, 1 у нас теперь в ebp
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
теперь вернемся немного назад. какие данные хранятся по метке А?
источник

VR

Vartan RedMan in Ассемблер
те что вернут функции
источник

A

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

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
считай что при ассемблировании (когда код переводится в выполнимую прорамму) каждая метка metka заменяется на адрес 00401000. ты можешь конечно сам вручную писать адреса, но на то асм и придумали, чтоб он это делал за нас, в данном случае он сам заменяет/просчитывает адреса меток
вот
источник