问题–编写汇编级语言程序, 以将8位BCD编号转换为其相应的ACSII代码。
【8085程序将8位BCD码转换为ASCII码】假设–
程序的起始地址:2000
输入存储器位置:2050
输出存储器位置:3050和3051
ASCII码数字0 – 9
文章图片
示例–
文章图片
算法–
- 在累加器中输入2050的内容
- 将累加器的内容移至寄存器B
- 使用AND与0F和ADD 30分隔最低有效位到累加器
- 将累加器的内容存储到内存位置3050
- 将寄存器B的内容移至累加器
- 使用AND与F0分隔最高有效位
- 旋转累加器内容4次
- 向累加器加30
- 将累加器的内容存储到内存位置3051
地址 | 助记符 | 注释 |
---|---|---|
2000 | LDA 2050 | A < -[2050] |
2003 | MOV B, A | B < -A |
2004 | ANI 0F | A < -A和0F |
2006 | ADI 30 | A < -A + 30 |
2008 | STA 3050 | [3050] < -A |
200B | MOV A, B | A < -B |
200C | ANI F0 | A < -A和F0 |
200E | RLC | 向左旋转 |
200F | RLC | 向左旋转 |
2010 | RLC | 向左旋转 |
2011 | RLC | 向左旋转 |
2012 | ADI 30 | A < -A + 30 |
2014 | STA 3051 | [3051] < -A |
2017 | HLT | 停止执行 |
- LDA 2050将内存位置2050的内容加载到累加器
- MOV B, A复制累加器的内容到寄存器B
- ANI 0FAND累加器的内容与立即数0F
- ADI 30向累加器加30
- STA 3050将累加器的内容存储到内存位置3050
- MOV A, B将寄存器B的内容复制到累加器
- ANI F0AND累加器的内容与立即数据F0
- RLC向左旋转累加器的内容, 不带进位
- RLC向左旋转累加器的内容, 不带进位
- RLC向左旋转累加器的内容, 不带进位
- RLC向左旋转累加器的内容, 不带进位
- ADI 30向累加器加30
- STA 3051将累加器的内容存储到内存位置3051
- HLT停止执行程序
推荐阅读
- 8085程序使用逻辑指令将两个8位数字相乘
- 使用30分钟快速入门机器学习时间
- 10个基本的机器学习面试问题分享
- 7个必备的移动应用程序准备在线面试
- win10 序列号最新推荐
- 本图文详细教程教你win10如何更新显卡驱动
- 本图文详细教程教你win10如何关闭防火墙
- 本图文详细教程教你win10如何增加虚拟内存
- windows10 家庭版激活最新推荐