📜  8085程序查找8位数字的数字总和

📅  最后修改于: 2021-06-28 14:26:01             🧑  作者: Mango

问题–在8085微处理器中编写汇编语言程序,以找到8位数字的总和。

例子 –

假设–输入数据和输出数据的地址分别为2050和3050。

算法 –

  1. 加载值存储在累加器A的存储位置2050中
  2. 将累加器A的值移到寄存器B中
  3. 执行半字节的屏蔽,即在ANI指令的帮助下使用OF对累加器A进行AND操作。我们将在累加器A中获得较低的半字节值
  4. 将累加器A的值移动到寄存器C中
  5. 将寄存器B的值移动到累加器A中
  6. 通过使用RLC指令反转存储在累加器A中的数字4次,然后再次屏蔽半字节,如步骤3所示
  7. 累加器A中寄存器C的值相加
  8. 将A的值存储在内存位置3050

程序 –

MEMORY ADDRESS MNEMONICS COMMENT
2000 LDA 2050 A <- M[2050]
2003 MOV B, A B <- A
2004 ANI 0F A <- A (AND) 0F
2006 MOV C, A C <- A
2007 MOV A, B A <- B
2008 RLC Rotate left without carry
2009 RLC Rotate left without carry
200A RLC Rotate left without carry
200B RLC Rotate left without carry
200C ANI 0F A <- A (AND) 0F
200E ADD C A <- A + C
200F STA 3050 M[3050] <- A
2012 HLT END

说明–使用的寄存器A,B,C

  1. LDA 2050 –将存储器位置2050的内容加载到累加器A中
  2. MOV B,A –将累加器A的值移动到寄存器B中
  3. ANI 0F –对累加器A和0F的值执行“与”运算
  4. MOV C,A –将累加器A的值移动到寄存器C中
  5. MOV A,B –移动累加器A中寄存器B的值
  6. RLC –指令将累加器A的值左移1位。由于它执行了4次,因此这将反转数字,即将低阶半字节与高阶半字节交换
  7. 重复步骤3
  8. ADD C –在累加器A中添加C寄存器的内容
  9. STA 3050 –在3050中存储A的值
  10. HLT –停止执行程序,并停止任何进一步的执行