【发布时间】:2023-03-23 15:15:01
【问题描述】:
我是汇编语言的新手。需要明确的是,这是家庭作业。问题是给定一个char *list,我怎样才能找到哪个字符是字符串的结尾? 所以我有
xor ecx, ecx; //counter
loop1:
mov esi, list;
mov eax, [esi + ecx];
cmp eax, 0x00; //check if the character is null
je end;
inc ecx;
jmp loop1;
end:
但是,循环在到达字符串末尾时不会终止。我想知道我做错了什么。我一直在书籍和网上寻找解决方案,但它们看起来都像我所做的那样。任何帮助将不胜感激!
编辑:是的,计数器应该在循环之外。
【问题讨论】:
-
是一个特定的测试用例还是全部失败?你试过空字符串吗?
-
你能提供完整的源代码吗?列表是如何定义的?它是从用户输入中读取的吗?它是在数据部分中静态定义的吗?
-
输入例如“Hello World”,循环应该在“d”之后终止,但它没有。
-
在每次迭代时将计数器重置为零可能不是您想要的。