8086求给定数列中偶数之和的程序

问题—— 在8086微处理器中编写一个程序,求出偶数序列的和,从起始偏移量500开始存储数字,并将结果存储在偏移量600。

null

例如——

图片[1]-8086求给定数列中偶数之和的程序-yiteyi-C++库

算法-

  1. 将500分配给SI
  2. 将数据从偏移量SI加载到寄存器CL(计数),并将00分配给寄存器CH inc.SI乘以1
  3. 从偏移量SI加载数据,并使用01进行测试,如果结果为非零,则跳至步骤5
  4. 用寄存器AL添加偏移数据
  5. 增加1抵消
  6. 循环到第3步
  7. 将结果(寄存器AL的内容)存储到偏移量600
  8. 停止

项目-

内存地址 助记符 议论
400 MOV SI,500 SI
403 MOV-CL[SI] CL
405 公司SI SI
406 MOV CH,00 CH
408 MOV AL,00 AL
40A MOV BL[SI] BL
40摄氏度 测试BL,01 BL和01
40F JNZ 413 如果不是零跳
411 加上AL,BL AL
413 公司SI SI
414 回路40A 如果CX不为零,跳至40A
416 MOV[600],AL AL->[600]
41A HLT 终止

解释——

  1. MOV SI,500: 将500分配给SI
  2. MOV CL[SI]: 将数据从偏移量SI加载到寄存器CL
  3. 公司SI: 将硅的值增加1
  4. MOV CH,00: 分配00以注册CH
  5. MOV AL,00: 分配00以注册AL
  6. MOV BL,[SI]: 将数据从偏移量SI加载到寄存器BL
  7. 测试BL,01: 并向01注册BL
  8. JNZ 413: 如果不是零,跳转到地址413
  9. 添加AL,BL: 添加寄存器AL和BL的内容
  10. 公司SI: 将硅的值增加1
  11. 回路40A: 如果CX不为零且CX=CX-1,则跳至40A
  12. MOV[600],AL: 将寄存器AL的值存储到偏移量600
  13. HLT: 终止

参考—— 8086求给定数列奇数和的程序

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享