汇编程序获取指针的值

时间:2015-05-04 16:36:06

标签: assembly x86 att

目前我和汇编程序有点玩,但我有一个问题需要指点。在我的汇编程序中,我有一个字符串,我放在寄存器EAX中,我想从字符串中获取第三个字符。这适用于此代码:

movl  $3, %esi

movl  $.STR1, %eax
movl  (%esi, %eax), %ecx

我的问题是我使用此命令获取了chacrter的地址,而不是字符的ASCII值。如何访问引用指针的值?

1 个答案:

答案 0 :(得分:1)

看起来是正确的,除了字符各为1个字节,因此您应该movb (%esi, %eax), %clmovzbl (%esi, %eax), %ecx。请注意,您没有获得地址,您将字符串中的前4个字符打包到%ecx。当然对于常数,您可以直接movb .STR1+3, %cl