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

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

问题–在8086微处理器中编写一个程序,以将两个8位数字相乘,其中数字存储在偏移500中,然后将结果存储到偏移600中。

示例–输入和输出以十六进制表示。

算法 –

  1. 将数据从偏移500加载到寄存器AL(第一个数字)
  2. 将数据从偏移量501加载到寄存器BL(第二个数字)
  3. 乘以它们(AX = AL * BL)
  4. 将结果(寄存器AX的内容)存储到偏移量600
  5. 停止

程序 –

MEMORY ADDRESS MNEMONICS COMMENT
400 MOV SI, 500 SI=500
403 MOV DI, 600 DI=600
406 MOV AL, [SI] AL<-[SI]
408 INC SI SI=SI+1
409 MOV BL, [SI] BL<-[SI]
40B MUL BL AX=AL*BL
40D MOV [DI], AX AX->[DI]
40F HLT END

解释 –

  1. MOV SI,500将500设置为SI
  2. MOV DI,600将600设置为DI
  3. MOV AL,[SI]将偏移量SI的内容加载到寄存器AL
  4. INC SI将SI的值增加1
  5. MOV BL,[SI]将偏移量SI的内容加载到寄存器BL
  6. MUL BL将寄存器AL和BL的内容相乘
  7. MOV [DI],AX将结果(寄存器AX的内容)存储到偏移量DI
  8. HLT结束。