8086程序,用于确定与另一阵列元素相对应的第一阵列元素的模数

问题—— 在8086微处理器中编写程序,用第二个阵列的8位n个数确定第一个阵列对应的8位n个元素的模,其中,大小“n”存储在偏移量500处,第一个数组的编号从偏移量501存储,第二个数组的编号从偏移量601存储,并将结果编号存储到第一个数组,即偏移量501中。

null

例如——

图片[1]-8086程序,用于确定与另一阵列元素相对应的第一阵列元素的模数-yiteyi-C++库

算法-

  1. 将500存储到SI,601存储到DI,并将数据从偏移量500加载到寄存器CL,并将寄存器CH设置为00(用于计数)。
  2. 将SI的值增加1。
  3. 从下一个偏移量(即501)将第一个数字(值)加载到寄存器AL。
  4. 在收银台存储00。
  5. 将寄存器AX中的值除以偏移量DI处的值。
  6. 将结果(寄存器AH的值)存储到内存偏移量SI。
  7. 将SI的值增加1。
  8. 将DI的值增加1。
  9. 循环到6以上,直到寄存器CX得到0。

项目-

内存地址 助记符 议论
400 MOV SI,500 SI
403 MOV-CL[SI] CL
405 MOV CH,00 CH
407 公司SI SI
408 莫夫迪,601 DI
40B MOV AL[SI] AL
40D MOV啊,00
40F 分区[DI] AX=AX/[DI]
411 MOV[SI],啊 啊->[SI]
413 公司SI SI
414 公司 DI
415 回路40B 如果是CX,跳到40B=0和CX=CX-1
417 HLT 终止

解释——

  1. MOV SI,500: 将SI的值设置为500
  2. MOV CL[SI]: 将数据从偏移量SI加载到寄存器CL
  3. MOV CH,00: 将寄存器CH的值设置为00
  4. 公司SI: 增加SI值1。
  5. MOV DI,600: 将DI的值设置为600。
  6. MOV AL,[SI]: 将值从偏移量SI加载到寄存器AL
  7. MOV啊,00: 将寄存器AH的值设置为00。
  8. DIV[DI]: 将寄存器AX的值除以偏移量DI处的内容。
  9. MOV[SI],啊: 在偏移量SI处存储寄存器AH的值。
  10. 公司SI: 增加SI值1。
  11. 包括: 将DI的值增加1。
  12. 循环408: 如果CX不是0且CX=CX-1,则跳转到地址408。
  13. HLT: 停止
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享