📌  相关文章
📜  8085程序检查给定数字是偶数还是奇数

📅  最后修改于: 2021-06-28 09:21:57             🧑  作者: Mango

问题–在8085微处理器中编写汇编语言程序,以检查存储在存储器2050中的8位数字是偶数还是奇数。如果是偶数,则将22存储在存储位置3050中,否则将11存储在存储位置3050中。

例子 –


如果数字的低位为1,则称该数字为奇数,否则为偶数。因此,为了确定数字是偶数还是奇数,我们借助ANI指令对01执行AND运算。如果数字为奇数,则累加器中将得到01,否则为00。 ANI指令也影响8085的标志。因此,如果累加器包含00,则置零标志,否则复位。

算法 –

  1. 将存储单元2050中的内容加载到累加器A中。
  2. 借助ANI指令,对累加器A的值01进行“与”运算。
  3. 检查是否设置了零标志,即,如果ZF = 1,则将22存储在累加器A中,否则将11存储在A中。
  4. 将A的值存储在内存位置3050

程序 –

MEMORY ADDRESS MNEMONICS COMMENT
2000 LDA 2050 A <- M[2050]
2003 ANI 01 A <- A (AND) 01
2005 JZ 200D Jump if ZF = 1
2008 MVI A 11 A <- 11
200A JMP 200F Jump to memory location
200D MVI A 22 A <- 22
200F STA 3050 M[3050] <- A
2012 HLT END

说明–使用的寄存器A:

  1. LDA 2050 –将存储器位置2050的内容加载到累加器A中
  2. ANI 01 –在累加器A和01之间执行“与”运算并将结果存储在A中
  3. JZ 200D –如果ZF = 1则跳转到存储位置200D
  4. MVI A 11 –将11分配给累加器
  5. JMP 200F –跳转到存储位置200F
  6. MVI A 22 –将22分配给累加器
  7. STA 3050 –在3050中存储A的值
  8. HLT –停止执行程序,并停止任何进一步的执行