问题—— 在8085微处理器中编写汇编语言程序,检查8位数字的两个半字节是否相等。如果半字节相等,则将00存储在内存位置3050中,否则将FF存储在内存位置3050中。
null
例如——
假设—— 编号,以检查存储在内存位置2050的类似字节。
算法-
- 在A中加载内存位置2050的内容。
- 在B中移动A的内容。
- 屏蔽下半字节并将其存储在寄存器C中。
- 在A中移动B的内容。
- 遮住高阶小口并将其存储在一个容器中。
- 通过使用 RLC 指示4次。
- 通过帮助比较A和C的内容 化学机械抛光 指示更新8085的标志。
- 如果ZF=0,则存储FF;如果ZF=1,则存储00。
- 将最终结果存储在存储位置3050中。
项目-
内存地址 | 助记符 | 议论 | |||
---|---|---|---|---|---|
2000 | LDA 2050 | A | |||
2003 | 莫夫B,A | B | |||
2004 | ANI 0F | A | |||
2006 | 莫夫C,A | C | |||
2007 | 电影A,B | A | |||
2008 | ANI F0 | A | |||
200A | RLC | 将A的内容向左旋转一位,不带进位 | |||
200B | RLC | 将A的内容向左旋转一位,不带进位 | |||
200C | RLC | 将A的内容向左旋转一位,不带进位 | |||
200D | RLC | 将A的内容向左旋转一位,不带进位 | |||
200E | CMP C | A-C | |||
200F | JZ 2018 | 如果ZF=1,则跳转 | |||
2013 | MVI A,FF | A | 2015 | JMP 201A | 跳转到内存位置201A |
2018 | MVI A,00 | A | |||
201A | STA 3050 | M[3050] | |||
201D | HLT | 终止 |
解释—— 寄存器A、B、C用于一般用途。
- LDA 2050: 将存储器位置2050的内容加载到累加器A中。
- MOV B,A: 移动寄存器B中A的内容。
- ANI 0F: 在A和0F的内容中执行和操作。将结果存储在A中。
- MOV C,A: 移动寄存器C中A的内容。
- 电影A,B: 移动A中B的内容。
- ANI F0: 在A和F0的内容中执行和操作。将结果存储在A中。
- RLC: 将内容向左旋转一位,不带进位。使用该指令4次以反转数字。
- CMP C: 比较A和C的内容。相应地更新8085的标志。
- JZ 2018: 如果设置了零标志,则跳转到内存位置2018。
- MVI A,FF: 将FF分配给A。
- JMP 201A: 跳转到记忆位置201A。
- MVI A,00: 将00分配给A。
- STA 3050: 存储内存位置3050中的内容。
- HLT: 停止执行程序并停止任何进一步的执行。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END