Size: a a a

Ассемблер

2021 June 13

АШ

Алексей Шведов... in Ассемблер
Ну вот следующий, кто зайдёт - ответит
источник

АШ

Алексей Шведов... in Ассемблер
Вопрос такой интересный придумал, хочу его на побольше оставить
источник

D

DarkPerl in Ассемблер
никак )))) 😁
источник

АШ

Алексей Шведов... in Ассемблер
Вот так:
str1: db 'Hello, ', 0
str2: db 'world', 0

start:
push 0
xor eax, eax
mov al, byte[str2+0x4]
push eax ; d
push dword[str2] ; worl
push word[str1+0x4] ; o,
push dword[str1] ; hell
push esp
источник

АШ

Алексей Шведов... in Ассемблер
источник

АШ

Алексей Шведов... in Ассемблер
Ну, естественно, нужно учитывать кратность строк, ибо может потеряться байт, и нужно восстанавливать где-то байтик, как в случае с 'world' - d не влазит, и нужно её сунуть в al, а соединить со стэком

На x64 полегче будет, конечно)
источник

D

DarkPerl in Ассемблер
Странный код, если честно ) 😁
источник

D

DarkPerl in Ассемблер
И строки то тут причём ?)))
источник

АШ

Алексей Шведов... in Ассемблер
Да, но если вдуматься, то вроде всё логично
источник

АШ

Алексей Шведов... in Ассемблер
А что, это не строка? Ну текст, набор байт, символы
Как удобнее
источник

D

DarkPerl in Ассемблер
Угу, байты ) Строк вроде как нету ) Не существует ) 😁
источник

D

DarkPerl in Ассемблер
И зачем их вообще в стеке "соединять" ?))))
источник

АШ

Алексей Шведов... in Ассемблер
Не знаю, прикольно
источник

D

DarkPerl in Ассемблер
Напушить в стек байтов ?!)
Ну, хз)
источник

АШ

Алексей Шведов... in Ассемблер
А какие есть ещё варианты соединить "байты"?))
Без использования всяких Сишных функций, естественно
источник

D

DarkPerl in Ассемблер
😁
источник

D

DarkPerl in Ассемблер
В память один за другим )
источник

АШ

Алексей Шведов... in Ассемблер
Ну это выделять память нужно, такое
источник

D

DarkPerl in Ассемблер
А для стека не ?) не надо?)
источник

D

DarkPerl in Ассемблер
😁
источник