MMIXAL 汉明距离

245 阅读1分钟

汉明距离是指两个(相同长度)字对应位不同的数量。

代码思路:

  1. 两个数进行异或运算,如果两个数对应位不同,在结果中的对应位为 1,
  2. 使用 SADD(sideway add) 指令得出结果中位为 1 的数目,即为汉明距离。

两个 MMIX 汇编指令实现汉明距离的计算。

         PREFIX :Hamming:
a        IS     $0
b        IS     $1
:Hamming XOR    a,a,b
         SADD   a,a,0
         POP    1,0
         PREFIX :