这是正确的组装吗?

发布于 2024-11-03 23:31:47 字数 169 浏览 0 评论 0原文

我正在尝试编写比较两个字符串的代码。 假设 string1 由 SI 引用,string2 由 DI 引用,并且每个字符串长度为 50。

这是否正确?

Mov SI,2000H
Mov DI,3000H
Mov CX,50H
CLD
REPNE CMPSW

I am trying to write code that compares 2 strings.
Let's assume that string1 is referred to by SI and string2 is referred to by DI and that each string length is 50.

Is this correct?

Mov SI,2000H
Mov DI,3000H
Mov CX,50H
CLD
REPNE CMPSW

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

<逆流佳人身旁 2024-11-10 23:31:47

一些问题:

  • 50H 是 80 十进制,
  • 你 - 通过使用 CMPSW 指令 - 有效地比较字(16 位),即 160 字节
  • 我认为你想使用 REPE 前缀,只要比较的元素相等,它就会重复指令。当然,或者直到 CX 中进行比较的次数为止。

关于在 CX 中放入什么:好吧,如果您确定字符串的长度始终是 2 CMPSW 的倍数,则速度更快。你只需要调整CX的内容即可

Some problems:

  • 50H is 80 decimal
  • you're - by using the CMPSW instruction - effectively comparing words (16 bit), ie 160 bytes
  • I think you want to use the REPE prefix, which repeats the instruction as long as the compared elements are equal. Or until the number of comparisons in CX was performed of course.

Re what to put in CX: well, if you're certain your string will always have length that's a multiple of 2 CMPSW is faster. You just have to adjust the contents of CX

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文