Size: a a a

Ассемблер

2021 June 15

A

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

d

disba1ancer in Ассемблер
Кстати, тут, возможно, порядок аргументов перепутан
источник

A

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

d

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

d

disba1ancer in Ассемблер
Стек под аргументы можно вообще заранее выделить и класть обычным mov
источник

d

disba1ancer in Ассемблер
Причём под все вызываемые функции
источник

d

disba1ancer in Ассемблер
И адресовать всё от esp
источник

d

disba1ancer in Ассемблер
Правда винапи вызывать это беда ибо там вызываемые чистят стек...
источник

d

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

A

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

d

disba1ancer in Ассемблер
Какие стандарты? Я про них ничего не говорил
источник

D

Den in Ассемблер
она не нультерменированая именно поэтому что ноль есть во второй а так еще одна буква влезает :)
источник

d

disba1ancer in Ассемблер
Если printf то у него все строки нуль терминированные
источник

A

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

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
format pe console
entry start
include 'win32ax.inc'

section '.code' code readable executable
start:
       stdcall myfunc,str1
       cinvoke system,'pause'
       cinvoke exit,0

proc myfunc string
locals
 number dd ?
endl
       mov     dword[number],777
       cinvoke printf,[string],[number]
       ret
endp

section '.data' data readable writable
str1     db 'Hello world! %d',13,10,0

section '.idata' import data readable writable
library msvcrt,'msvcrt.dll'

include 'api/msvcrt.inc'

тебе твою прогу надо было примерно так написать. согласно стандартам, о которых многие забывают когда имеют дело с сишными функциями, которые требуют чтоб по отработке функции стек выравнивала не сама процедура, а прогер (ручками)   после отработки функции. в данном случае данные действия автоматоv делает макрос cinvoke
источник

楽園松本 in Ассемблер
источник

A

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

d

disba1ancer in Ассемблер
А если мы специально не очищаем стек чтобы esp был статичен?
источник

A

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

A

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