You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NASM字符串含数字检测问题:部分测试用例失败求助

NASM has_digits 函数部分测试用例失败的问题排查

你的has_digits函数能通过部分测试,但在带特殊位置数字的用例(如"I <3 NASM"、"Hello W0rld!")中全部失败,核心问题有两个:

  1. 字符读取的寄存器宽度错误
    你使用16位寄存器cx存储字符串字符,但ASCII字符串的每个元素是8位字节。执行mov cx, [rdi+rsi]时,会一次性读取内存中两个连续字节到cx,导致你比较的不是单个字符的ASCII值,而是两个字节拼接的16位数值。比如"Hello W0rld!"里的'0',后面紧跟'r',cx会被赋值为0x7230('r'是0x72,'0'是0x30),这个值远大于'9'的ASCII码57,自然会被判定为非数字。

  2. 找到数字后未及时返回
    当检测到数字时,你仅将结果设为1,但没有立即跳出循环返回。这不会直接导致测试失败,但会执行多余的循环操作,浪费性能。


内容的提问来源于stack exchange,提问作者Multiple Sources

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 17:32:09