movl (%edx), %ebx # Move value of edx to ebx
Это не перемещает значение EDX
в EBX
(комментарий неверный).
Этот разыменовывает указатель в EDX
и помещает результат разыменования в EBX
. Таким образом, если вы вызвали вашу программу с помощью ./a.out foo
, то EBX
в итоге будет 0x006f6f66 (== '\0oof' ("foo\0" in little-endian))
.
Я предполагаю, что это не то, что вы хотели, но ваш вопрос не очень ясен о том, что вы ожидаете, где произойдет.