问题–在8085微处理器中编写汇编语言程序,以减去两个8位BCD编号。
例子 –
算法 –
- 将地址2051中的数据加载到A中
- 将数据从A移到C
- 将数据移至A中的99
- 减去寄存器A和C的内容
- 将A的内容增加1
- 将数据从A移到B
- 将地址2050中的数据加载到A中
- 使用DAA指令添加A和C的内容并以BCD格式对其进行调整
- 将结果存储在内存地址3050中
- 停止
程序 –
MEMORY ADDRESS | MNEMONICS | COMMENT | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2000 | LDA 2051 | A <- 2051 | ||||||||||||
2003 | MOV C, A | C <- A | ||||||||||||
2004 | MVI A 99 | A <- 99 | 2006 | SUB C | A = A – C | 2007 | INR A | A = A + 1 | ||||||
2008 | MOV B, A | B <- A | ||||||||||||
2009 | LDA 2050 | A <- 2050 | 200C | ADD B | A = A + B | 200D | DAA | Convert the hexadecimal value to BCD value | 200E | STA 3050 | 3050 <- A | 2011 | HLT | Stop |
解释 –
- LDA 2051用于从A中的地址2051加载数据。
- MOV C,A用于将数据从A移到C。
- MVI A 99用于将数据移至寄存器A。
- SUB C用于减去寄存器A和C的内容。
- INR A用于将A的内容增加1。
- MOV B,A用于将数据从A移到B。
- LDA 2050用于从A中的地址2050加载数据。
- ADD B用于添加寄存器A和B的内容。
- DAA用于将累加器中的十六进制值转换为BCD值。
- STA 3050用于存储A到3050的内容。
- HLT用于结束程序。