我正在用面向Intelx86的汇编程序(32位,在Windows中编写)编写程序,在该程序中,我必须对通过_gets收到的字符串进行加密。我按两个字符的块进行加密,如果这两个字符相同,则需要将它们添加到结果字符串中,而不必进行更改。要遍历字符串,我使用EBX,如下所示:
cmp byte[userstring + ebx], 0
je EmptyBlock
由于某种原因,它只有两个字符时可以工作,但是当字符串有4个字符(所有字符完全相同,例如“ AAAA”)时,它将停止工作。随着EBX不断增加2个,它进入了一个无限循环。我在跳过什么吗?我做错了比较吗?抱歉,我是汇编语言新手。