movzbl在字符串上的寄存器

时间:2018-11-07 04:12:20

标签: assembly x86 gdb mov

我试图通读组装线并破译它们的工作,而我的理解到了:

%eax当前为70,并且即将被覆盖

%ebx是我输入的字符串,由70个“ m”组成。它的地址是0x804d850,并作为终止字符继续到0x804d896。中间的所有地址的m值为109。

这是我遇到的问题:

0x0804927b <+39>:    movzbl  (%ebx), %eax
0x0804927e <+42>:    test    %al, %al

据我了解,我正在尝试从字符串中移出一个字节来覆盖%eax,然后对其进行零扩展。然后,我将%eax(刚刚移动的“ m”)的最低字节与零进行比较。

我怎样才能使%al等于0?那不是对应于NULL字符吗?如果我将其输入为字符串的第70个字符,则字符串的长度将改为69个字符,并且结尾处仍会带有'm'。

很抱歉,这个问题的措辞令人困惑。

0 个答案:

没有答案