Я новичок в asm и использую строку.
1 / У меня есть строка, и я хочу вернуть адрес первого символа. (Я вызываю функцию asm в C main).
Я пробовал :
movl $str, %eax
По мне, он возвращает строку.
С movl $(str), %eax
он возвращает адрес первого символа строки? Если я хочу вернуть адрес второго символа в строке, я не понимаю, как я могу это сделать в asm.
Я показываю результат в программе C следующим образом:
printf("string : %s, adress : %d\n", function_asm(), function_asm()).
Он возвращает мне «строка: программа, адрес: 134520852». Я думаю, что «134520852» не является адресом, и я кое-что не понимаю.
2 / Я видел, что есть %edi
, %esi
и функции для строки, но я не могу найти хороший (простой) учебник, использующий это. Я только что понял, что% edi предназначен для источника индекса, а% esi - для назначения индекса ... вы знаете какие-нибудь ссылки на это?
заранее спасибо ! :-)
134520852
не адрес? - person   schedule 12.11.2011