前提条件–二进制与格雷码之间
问题–在8085中编写一个汇编语言程序,该程序将8位数字转换为灰度数字
例子 –
假设– 8位数字(输入)存储在存储位置2050,输出输出存储在存储位置3050。
算法 –
- 在累加器中加载内存位置2050的内容
- 复位进位标志,即CY = 0
- 用进位将累加器的内容右移一位,并用输入的初始值执行异或运算
- 将结果存储在内存位置3050
程序 –
MEMORY ADDRESS | MNEMONICS | COMMENT |
---|---|---|
2000 | LDA 2050 | A <- M[2050] |
2003 | MOV B, A | B <- A |
2004 | STC | CY = 1 |
2005 | CMC | CY <- complement of CY |
2006 | RAR | Rotate 1 bit right with carry |
2007 | XRA B | A <- A XOR B |
2008 | STA 3050 | M[3050] <- A |
200B | HLT | End of program |
解释 –
- LDA 2050将存储单元2050中的内容加载到累加器中
- MOV B,A传送寄存器B中寄存器A的内容
- STC设置进位标志,即CY变为1
- CMC补充进位标志,即CY变为0
- RAR与进位标志一起将累加器的内容旋转1位
- XRA B对寄存器A和寄存器B的值执行异或运算,并将结果存储在A中
- STA 3050将累加器的值存储在内存位置3050中
- HLT停止执行程序,并停止任何进一步的执行