问题–
在8085微处理器中编写汇编语言程序, 将一个字节分成两个半字节并将结果存储在2001H和2002H中。
示例–
算法–
- 将存储位置2500的内容加载到累加器A中。
- 现在, 我们将对累加器和OFH的内容执行AND运算。
- 现在, 使用STA, 我们将结果存储在2501H内存位置。
- 使用LDA, 我们会将2500H的内容加载到累加器中。
- 再次执行AND操作以分离另一个半字节, 即使用累加器和F0H的内容进行AND操作。
- 现在将累加器中的每一位右移一个位置, 并重复此步骤四次。
- 现在使用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修改。
- LDA 2500H –将存储位置2500的内容加载到累加器A中。
- ANI 0FH –对累加器和0FH的内容执行AND操作。
- STA 2501H –将累加器的内容存储到存储位置2501H。
- LDA 2500H –将存储位置2500的内容加载到累加器A中。
- ANI F0H –对累加器和F0H的内容执行AND操作。
- RRC –向右旋转累加器中的每一位。
- RRC –向右旋转累加器中的每一位。
- RRC –向右旋转累加器中的每一位。
- RRC –向右旋转累加器中的每一位。
- STA 2502H –将累加器的内容存储到内存位置2502H。
- HLT –停止执行程序。