我需要编写一个汇编程序,它可以为我提供内存中最宽的 32 个 8 位数字。我得到了一个内存空间数组,每个地址对应一个 8 位字。我需要将每个数字移动到一个寄存器中,然后找到宽度。在这种情况下,宽度是指第一个和最后一个 1 之间的距离。
前任:
00000000 = 0
00010000 = 1
00101000 = 3
10000001 = 8
对于这个程序,我必须创建自己的指令集。每条指令都是 8 位长,所以我也不能有过长的分支。
我的主要问题是弄清楚如何计算“宽度”。一旦我知道如何做到这一点,我应该能够弄清楚如何使用 8 位指令来做到这一点。