📜  8086程序将两个16位数字相乘

📅  最后修改于: 2021-06-28 16:45:13             🧑  作者: Mango

问题–编写一个程序,将两个16位数字相乘,起始地址为2000 ,数字分别位于30003002的存储地址,并将结果存储到30043006的存储地址。

例子 –

算法 –

  1. 首先将数据从内存3000加载到AX(累加器)中
  2. 从存储器3002将数据加载到BX寄存器中
  3. 将BX与累加器AX相乘
  4. 将数据从AX(累加器)移至内存
  5. 将数据从DX移动到AX
  6. 将数据从AX(累加器)移至内存
  7. 停止

程序 –

Memory Mnemonics Operands Comment
2000 MOV AX, [3000] [AX] <- [3000]
2004 MOV BX, [3002] [BX] <- [3002]
2008 MUL BX [AX] <- [AX] * [BX]
200A MOV [3004], AX [3004] <- AX
200E MOV AX, DX [AX] <- [DX]
2010 MOV [3006], AX [3006] <- AX
2014 HLT Stop

解释 –

  1. MOV用于加载和存储数据。
  2. MUL用于将两个16位数字相乘。
  3. HLT用于停止程序。
  4. AX是用于存储结果的累加器。
  5. BX,DX是通用寄存器,其中BX用于乘法,而DX用于结果。