【问题标题】:computing a hash in NASM assembly在 NASM 程序集中计算哈希
【发布时间】:2015-10-20 20:03:05
【问题描述】:

我需要帮助来理解这些关于我必须在 NASM 汇编中执行的程序的说明

哈希值将是 5 个字节长。在向右应用旋转后,第一个单词将是文件中所有最重要的半字节的总和。高位半字节将旋转一个从零开始并每次递增的值。在达到 7 的值后,旋转计数器应该从零开始。第二个字将是在向右应用旋转后文件中所有最低有效半字节的总和。低位半字节将旋转一个以 3 开头的值。最后一个字节将是文件中所有字节的 XOR

我很困惑的是如何想象计算最重要和最不重要的半字节。

所以如果我有一个包含 2 个字符的文件:AB

A - 0100 0001
B - 0100 0010
将是我的重要的小吃

A - 0100 0001
B - 0100 0010
将是我的最少重要的一点点

在给出具体说明的情况下,我应该如何旋转和计算这些小点,而不会使小点不按顺序排列?

【问题讨论】:

    标签: assembly hash nasm


    【解决方案1】:

    考虑到具体情况,我想如何轮换和计算这些 指示,而不是让小点不按顺序?

    您必须将字节复制到不同的寄存器,在这些寄存器中进行移位和屏蔽以进行 4 位循环。 x86 循环指令仅适用于 8、16、32 和 64 位操作数大小。 (还有 9、17、32、65,如果算上慢速旋转进位指令的话。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-23
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      • 2017-02-04
      • 2012-04-14
      • 2014-01-14
      • 1970-01-01
      相关资源
      最近更新 更多