问题—— 用8085编写汇编语言程序,打印输入整数表。
null
假设—— 假设输入的数字位于存储位置2050,表格将从起始位置3050打印。
例如——
算法-
- 从内存位置2050将输入值加载到累加器中,然后将其复制到另一个寄存器,如D。还将0A存储在寄存器B中。
- 使用LXI指令以M为单位存储内存位置3050,并获取另一个寄存器,比如值为00的C。
- 现在将D寄存器的内容复制到A,将A和C的内容添加到A中,并将其存储在A中,然后将其复制到M中。
- M的增量值为1。
- 将A的内容复制到C,并将B的内容减1,如果其值为0,则停止,否则再次转到步骤3。
项目-
住址 | 助记符 | 评论 |
---|---|---|
2000 | LDA 2050 | A |
2003 | MOV D,A | D |
2004 | MVI B 0A | B |
2006 | LXI H 3050 | H |
2009 | MVI C 00 | C |
200B | 莫夫A,D | A |
200C | 加C | A |
200D | MOV M,A | M |
200E | INX H | HL |
200F | 莫瓦 | C |
2010 | DCR B | B |
2011 | JNZ 200B | 如果ZF=0,跳转到地址200B |
2014 | HLT | 终止程序 |
解释——
- LDA 2050: 将2050内存位置的内容加载到累加器(寄存器A)。
- MOV D,A: 将累加器的内容移至寄存器D。
- MVI B 0A: 将0A数据存储到寄存器B中。
- LXI H 3050: 在H寄存器中存储30,在L寄存器中存储50,因此M将包含3050。
- MVI C 00: 在寄存器C中存储00个数据。
- 电影A,D: 将D寄存器的内容移到A。
- 添加C: 添加A和C寄存器的内容并存储在A中。
- MOV M,A: 将寄存器的内容移到M中。
- INX H: 将M的内容增加1。
- MOV C,A: 将寄存器的内容移到C中。
- DCR B: 将B寄存器的内容减1。
- JNZ 200B: 如果进位标志不为零,跳转到地址200B。
- HLT: 终止程序。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END