对于MASM,这需要什么样的输出?

时间:2014-12-08 06:22:14

标签: assembly masm masm32

From Kip Irvine's Intel x86 Assembly Language

我很困惑这个问题作为输出要求什么。任何人都可以澄清吗?您不需要解决问题。我只需要帮助了解它的要求!

1 个答案:

答案 0 :(得分:1)

你看到的是一个链表,其中:

  • 1是起始索引;
  • 每个字符都是有效负载;
  • 每个链接都是next指针。

最好将其视为:

start = 1
index:    0  1  2  3  4  5  6  7
char:     H  A  C  E  B  D  F  G
next:     0  4  5  6  2  3  7  0

并意识到:

  • 1的起始索引为您提供了字符A4的链接。
  • 4的索引为您提供了字符B2的链接。
  • 2的索引为您提供了字符C5的链接。
  • 5的索引为您提供了字符D3的链接。
  • 等等。

重新排列它们按列表排序(按照start/next)命令为您提供:

start = 1
index:    1  4  2  5  3  6  7  0
char:     A  B  C  D  E  F  G  H
next:     4  2  5  3  6  7  0  0

所以它实际上是链表:

A -> B -> C -> D -> E -> F -> G -> H -> H -> H ...

预期结果应该是按顺序(ABCDEFGH)复制到新数组的链表,但有趣的是,H指向自身而不是某些特殊的NULL值,所以你会有将此视为一种特殊情况。