目前我和汇编程序有点玩,但我有一个问题需要指点。在我的汇编程序中,我有一个字符串,我放在寄存器EAX中,我想从字符串中获取第三个字符。这适用于此代码:
movl $3, %esi
movl $.STR1, %eax
movl (%esi, %eax), %ecx
我的问题是我使用此命令获取了chacrter的地址,而不是字符的ASCII值。如何访问引用指针的值?
答案 0 :(得分:1)
看起来是正确的,除了字符各为1个字节,因此您应该movb (%esi, %eax), %cl
或movzbl (%esi, %eax), %ecx
。请注意,您没有获得地址,您将字符串中的前4个字符打包到%ecx
。当然对于常数,您可以直接movb .STR1+3, %cl
。