8086程序添加两个8位BCD数字

问题—— 在8086微处理器中编写一个程序,找出两个8位BCD数字的加法,其中数字从起始存储器地址2000:500存储,结果存储到存储器地址2000:600,并在2000:601进位。

null

例如——

图片[1]-8086程序添加两个8位BCD数字-yiteyi-C++库

算法-

  1. 将数据从偏移量500加载到寄存器AL(第一个数字)
  2. 将数据从偏移量501加载到寄存器BL(第二个数字)
  3. 将这两个数字相加(寄存器AL和寄存器BL的内容)
  4. 应用DAA指令(十进制调整)
  5. 将结果(寄存器AL的内容)存储到偏移量600
  6. 将寄存器AL设置为00
  7. 通过进位将寄存器AL的内容添加到其自身
  8. 将结果(寄存器AL的内容)存储到偏移量601
  9. 住手

项目-

内存地址 助记符 议论
400 MOV AL[500] AL
404 MOV BL[501] BL
408 加上AL,BL AL
40A 达阿 十进制调整
40B MOV[600],AL AL->[600]
40F MOV AL,00 AL
411 艾尔,艾尔 AL
413 MOV[601],AL AL->[601]
417 HLT 终止

解释——

  1. MOV AL[500] :将数据从偏移量500加载到寄存器AL
  2. MOV BL[501] :将数据从偏移量501加载到寄存器BL
  3. 加上AL,BL :添加寄存器AL和BL的内容
  4. 达阿 :十进制调整AL
  5. MOV[600],AL :将数据从寄存器AL存储到偏移量600
  6. MOV AL,00 :将寄存器AL的值设置为00
  7. 艾尔,艾尔 :通过进位将寄存器AL的内容添加到AL
  8. MOV[601],AL :将数据从寄存器AL存储到偏移量601
  9. HLT :停下
© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享