问题–
在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 –
【8085程序将一个字节分离(或拆分)为两个半字节】累加器的每个二进制位向右旋转一个位置。 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 –停止执行程序。
推荐阅读
- 8085程序将两个8位数字相加而不带进位
- 在软件开发中学习的20条黄金法则
- 用Java创建流的10种方法
- 2020年10种流行的物联网家庭设备
- 人们在面试中容易犯的10个错误
- android学习第一天(android的介绍和基础)()
- android中webview loadUrl(String url,Map header)方法和postUrl(String url,byte[] postData)方法同时使用问题;
- AndroidStudio调试APP
- 手把手教你实现折线图之------安卓最好用的图表库hellocharts之最详细的使用介绍