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

📅  最后修改于: 2021-06-28 09:08:00             🧑  作者: Mango

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

算法 –

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

程序 –

MEMORY ADDRESS MNEMONICS COMMENT
2000 LDA 2500H A <- M[2500]
2003 ANI 0FH A <- A (AND) 0FH
2005 STA 2501H M[2501] <- A
2008 LDA 2500H A <- M[2500]
200B ANI F0H A <- A (AND) F0H
200D RRC Rotate right by one position
200E RRC Rotate right by one position
200F RRC Rotate right by one position
2010 RRC Rotate right by one position
2011 STA 2502H M[2502] <- A
2014 HLT Stop the program.

解释 –
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的内容执行“与”运算。
  6. RRC –将累加器中的每一位右移一个位置。
  7. RRC –将累加器中的每一位右移一个位置。
  8. RRC –将累加器中的每一位右移一个位置。
  9. RRC –将累加器中的每一位右移一个位置。
  10. STA 2502H –将累加器的内容存储到内存位置2502H。
  11. HLT –停止执行程序。