首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >8085微处理器中的程序设计

8085微处理器中的程序设计
EN

Stack Overflow用户
提问于 2021-06-06 15:19:00
回答 1查看 26关注 0票数 0

从m/m位置2500H开始有N个字节存储。N的值存储在2400H.How中。我能否编写一个8085程序来交换(不管位值如何)所有字节的位Di和Dj。i=4和j=0的值

EN

回答 1

Stack Overflow用户

发布于 2021-06-21 17:08:59

没人愿意帮你做作业。也就是说,下面是如何将1字节数据的第i位与第j位互换的方法。

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

假设实际数据在寄存器D中,因此为了与第四位交换第二位,我们可以这样写:

代码语言:javascript
复制
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字节上重复此过程将完成所需的任务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67856677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档