【问题标题】:Program in 8085 Microprocessor8085微处理器中的程序
【发布时间】:2021-06-06 07:19:00
【问题描述】:

从 m/m 位置 2500H 存储了 N 个字节。 N 的值存储在 2400H 中。如何编写一个 8085 程序来交换所有字节的位 Di 和 Dj(无论位值如何)。 i=4 和 j=0 的值

【问题讨论】:

    标签: microprocessors 8085


    【解决方案1】:

    没有人愿意为你做作业。话虽如此,下面是如何将 1 字节数据的第 i 位与第 j 位互换。

    首先让我们回顾一下按位逻辑运算符及其用法。假设我们想知道第 4 位是否已设置,我们将位掩码0000 1000(即08H)和AND 与数据一起使用。为了清除第二个位,我们使用位掩码1111 1101(即FDH)和AND它与数据。然而,要设置第 6 位,我们需要一个位掩码 0000 0010(即 02H)和 OR 它与数据。为了补充翻转第 4 位,我们使用位掩码0000 1000(即08H)和XOR 与数据一起使用。

    假设实际数据在寄存器 D 中,因此我们可以写将第 2 位与第 4 位交换:

    MVI A, 08H    ;i-th bit
    ORI 02H       ;j-th bit
    ANI D         ;only 2nd and 4bit of the data survives
    JPE SKIP      ;if both bits are same (both 0 or both 1) no exchange required
    ;if not we need a swap, which is this case can be done by flipping the both 
    MOV A,D       ;bring back the data again
    XRI 08H       ;flip the i-th bit
    XRI 02H       ;flip the j-th bit
    SKIP: MOV D,A ;put the data back to D
    

    位掩码可以通过适当的移位次数(或不带进位的循环)以编程方式生成。对所有 n 字节重复此过程将完成所需的任务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      相关资源
      最近更新 更多