8085程序将一个字节分离(或拆分)为两个半字节

2021年3月22日15:05:25 发表评论 1,006 次浏览

问题–

在8085微处理器中编写汇编语言程序, 将一个字节分成两个半字节并将结果存储在2001H和2002H中。

示例–

8085程序将一个字节分离(或拆分)为两个半字节1

算法

  1. 将存储位置2500的内容加载到累加器A中。
  2. 现在, 我们将对累加器和OFH的内容执行AND运算。
  3. 现在, 使用STA, 我们将结果存储在2501H内存位置。
  4. 使用LDA, 我们会将2500H的内容加载到累加器中。
  5. 再次执行AND操作以分离另一个半字节, 即使用累加器和F0H的内容进行AND操作。
  6. 现在将累加器中的每一位右移一个位置, 并重复此步骤四次。
  7. 现在使用STA, 我们将在2502H存储器位置中存储另一个半字节。

程序–

内存地址 记忆 注释
2000 LDA 2500H A <-M [2500]
2003 ANI 0FH A <-A(与)0FH
2005 STA 2501H M [2501] <-A
2008 LDA 2500H A <-M [2500]
200B ANI F0H A <-A(AND)F0H
200D RRC 向右旋转一个位置
200E RRC 向右旋转一个位置
200F RRC 向右旋转一个位置
2010 RRC 向右旋转一个位置
2011 STA 2502H M [2502] <-A
2014 HLT 停止程序。

说明–

RRC –

累加器的每个二进制位向右旋转一个位置。 D0位放置在D7的位置以及进位标志中。 CY根据位D0修改。

  1. LDA 2500H –将存储位置2500的内容加载到累加器A中。
  2. ANI 0FH –对累加器和0FH的内容执行AND操作。
  3. STA 2501H –将累加器的内容存储到存储位置2501H。
  4. LDA 2500H –将存储位置2500的内容加载到累加器A中。
  5. ANI F0H –对累加器和F0H的内容执行AND操作。
  6. RRC –向右旋转累加器中的每一位。
  7. RRC –向右旋转累加器中的每一位。
  8. RRC –向右旋转累加器中的每一位。
  9. RRC –向右旋转累加器中的每一位。
  10. STA 2502H –将累加器的内容存储到内存位置2502H。
  11. HLT –停止执行程序。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: