Size: a a a

Ассемблер

2019 December 06

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
Mohammad Wolf
Это понятно, что я храню строку в .bss (это же сегмент неинициализированных данных?). Вот только непонятно почему нужно было запушить адрес return из call функции?
не вижу такое
источник

MW

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

MW

Mohammad Wolf in Ассемблер
источник

MW

Mohammad Wolf in Ассемблер
источник

MW

Mohammad Wolf in Ассемблер
источник

A

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

A

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

A

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

A

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

A

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

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
Mohammad Wolf
Это понятно, что я храню строку в .bss (это же сегмент неинициализированных данных?). Вот только непонятно почему нужно было запушить адрес return из call функции?
эт чтоб функция могла возвратится на следущую инстукцию после call. но это странно, тк call итак заносит адрес возврата в стек
источник

A

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

A

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

A

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

A

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

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
 mov  rdi, $ + 15
 ;; get string lengt
 call  calculateStrLength
 ;; write zeros to rax
 xor  rax, rax

проверь в отладке после call в стеке будет лежать то же значение что и в rdi (вычесленный адрес)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in Ассемблер
ты хоть отвечай, а то такое ощущенье как будто в пустоту говорю
источник

A

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

MW

Mohammad Wolf in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
ты хоть отвечай, а то такое ощущенье как будто в пустоту говорю
Да я только что взял телефон)
источник

MW

Mohammad Wolf in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
 mov  rdi, $ + 15
 ;; get string lengt
 call  calculateStrLength
 ;; write zeros to rax
 xor  rax, rax

проверь в отладке после call в стеке будет лежать то же значение что и в rdi (вычесленный адрес)
Ну это понятно дело, что адрес тот же будет. Но зачем это?
источник