Я занимаюсь программированием в сборке, делая код C. Я не понимаю преобразования параметра в целое число с использованием atoi. Может кто-нибудь объяснить мне, как я, как интерпретировать следующий фрагмент кода:Call atoi (Assembler) printf (Assembler)
movl 12(%ebp), %eax ; move a parameter to %eax
addl $4, %eax ; add 4 bytes
movl (%eax), %eax ; magic things
movl %eax, (%esp) ; magic things
call atoi ; atoi call
movl %eax, 24(%esp) ; asign the result of a magic procedure to a new variable
Я понимаю, некоторые инструкции, но магические процедуры немного неоднозначные для меня.
Кроме того, я хочу знать, как работает вызов функции Printf, это сегмент кода:
movl $.LC1, %eax ; assing the string (%d\n) to %eax
movl 28(%esp), %edx ; move the value to print to %edx
movl %edx, 4(%esp) ; magic things
movl %eax, (%esp) ; magic things
call printf ; call to printf
Заранее спасибо за поддержку.
что с ними связано? paranthesis подобны разыменованию указателя, afaik –
Извините, если вопрос слишком пустой, но, это первый раз, когда я читал, использовал и «переводил» Assembly; и я нашел много текстов, объясняющих то же самое, что вы говорите ... Мне нужно что-то более явное. Заранее спасибо. – user1170251