前提条件–二进制与格雷码之间
问题–在8085微处理器中编写汇编语言程序,以将二进制数字转换为灰色。
例子 –
算法 –
- 将进位标志(CY)设置为0。
- 将地址2050中的数据加载到A中。
- 将A(累加器)的数据移至寄存器B。
- 向右旋转A的位。
- 对寄存器A和B的内容进行XOR。
- 将结果存储在内存地址3050中。
- 停止。
程序 –
MEMORY ADDRESS | MNEMONICS | COMMENT | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2000 | STC | CY <- 1 | 2001 | CMC | CY <- 1’s Compliment of CY | 2002 | LDA 2050 | A <- 2050 | 2005 | MOV B,A | B <- A | 2006 | RAR | Rotate accumulator right with carry | 2007 | XRA B | A = A XOR B | 2008 | STA 3050 | 3050 <- A | 200B | HLT | Stop |
解释 –
- STC用于将进位标志(CY)设置为1。
- CMC用于对进位标志(CY)的内容取1。
- LDA 2050用于将地址2050中的数据加载到A中。
- MOV B,A用于将A的数据移至B。
- RAR用于将A的位与进位标志(CY)一起右移一次。
- XRA B用于在寄存器A和B的内容之间执行XOR操作。
- STA 3050用于存储A到3050的内容。
- HLT用于结束程序。