问题—— 在8086微处理器中编写一个程序,求出偶数序列的和,从起始偏移量500开始存储数字,并将结果存储在偏移量600。
null
例如——
算法-
- 将500分配给SI
- 将数据从偏移量SI加载到寄存器CL(计数),并将00分配给寄存器CH inc.SI乘以1
- 从偏移量SI加载数据,并使用01进行测试,如果结果为非零,则跳至步骤5
- 用寄存器AL添加偏移数据
- 增加1抵消
- 循环到第3步
- 将结果(寄存器AL的内容)存储到偏移量600
- 停止
项目-
内存地址 | 助记符 | 议论 |
---|---|---|
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 | 终止 |
解释——
- MOV SI,500: 将500分配给SI
- MOV CL[SI]: 将数据从偏移量SI加载到寄存器CL
- 公司SI: 将硅的值增加1
- MOV CH,00: 分配00以注册CH
- MOV AL,00: 分配00以注册AL
- MOV BL,[SI]: 将数据从偏移量SI加载到寄存器BL
- 测试BL,01: 并向01注册BL
- JNZ 413: 如果不是零,跳转到地址413
- 添加AL,BL: 添加寄存器AL和BL的内容
- 公司SI: 将硅的值增加1
- 回路40A: 如果CX不为零且CX=CX-1,则跳至40A
- MOV[600],AL: 将寄存器AL的值存储到偏移量600
- HLT: 终止
参考—— 8086求给定数列奇数和的程序
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END