Size: a a a

Ассемблер

2020 July 30

A

Aleksandr in Ассемблер
можно сделать проще:
call .this
.this:
источник

A

Aleksandr in Ассемблер
то же самое, но явно и без магии
источник

S

SeanWoo in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
можно писать попробовать одними ret'ами
И ret на джамп заменить
источник

A

Aleksandr in Ассемблер
джамп всегда в одно место ведет, ret - нет
источник

S

SeanWoo in Ассемблер
Aleksandr
джамп всегда в одно место ведет, ret - нет
Суть не в этом
источник

RG

R G in Ассемблер
привет, у меня такой код
mov rcx, qword [argc]
cinvoke printf, <"argc = %d">, rcx

Выводится какой-то мусор, потому что cinvoke в rcx записывает адрес форматной строки
источник

RG

R G in Ассемблер
как быть в таких случаях?
источник

RG

R G in Ассемблер
просто не пользоваться макросами вызова?
источник

RG

R G in Ассемблер
но может быть есть решение получше?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
R G
привет, у меня такой код
mov rcx, qword [argc]
cinvoke printf, <"argc = %d">, rcx

Выводится какой-то мусор, потому что cinvoke в rcx записывает адрес форматной строки
используй другой регистр. их в х64 поболя будет
источник

RG

R G in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
используй другой регистр. их в х64 поболя будет
да не вопрос конечно какой нить rbx использовать. Просто странно, что invoke/cinvoke туповаты
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
R G
да не вопрос конечно какой нить rbx использовать. Просто странно, что invoke/cinvoke туповаты
в fastcall каждому регистру свое место, а ты их используешь по старинке (х32), думая что твои значения будут на стеке
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
R G
привет, у меня такой код
mov rcx, qword [argc]
cinvoke printf, <"argc = %d">, rcx

Выводится какой-то мусор, потому что cinvoke в rcx записывает адрес форматной строки
и судя по параметрам, форматная строка сначала забивает rcx, а второй параметр попадает в rdx (в твоем случае ты так и пишешь что rcx это второй параметр - значит это надо в rdx положить)
источник

RG

R G in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
и судя по параметрам, форматная строка сначала забивает rcx, а второй параметр попадает в rdx (в твоем случае ты так и пишешь что rcx это второй параметр - значит это надо в rdx положить)
да, в дизасме так
источник

A

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

A

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

A

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

RG

R G in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
как вариант можешь сразу использовать rdx
а кстати да
источник

RG

R G in Ассемблер
я научился пользоваться __getmainargs
источник

A

Aleksandr in Ассемблер
А написать свою?
источник