汇编程序获取指针的值

Assembler get value of pointer

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

movl  , %esi

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

我的问题是我用这个命令得到了字符的地址,而不是字符的 ASCII 值。如何访问引用指针的值?

这看起来是正确的,除了每个字符是 1 个字节,所以你应该 movb (%esi, %eax), %clmovzbl (%esi, %eax), %ecx。注意你没有得到地址,你得到了字符串中的前 4 个字符打包到 %ecx。当然对于常量你可以直接做 movb .STR1+3, %cl.