如何解决8085微处理器程序
从 m/m 位置 2500H 存储了 N 个字节。 N 的值存储在 2400H 中。如何编写 8085 程序来将所有字节的位 Di 与 Dj 交换(不考虑位值)。 i=4 和 j=0 的值
解决方法
没有人愿意为你做功课。话虽如此,下面是如何将 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
字节上重复此过程将完成所需的任务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。