8086程序,用于确定n个数的数组中的数的平方

问题—— 在8086微处理器中编写一个程序,找出8位n个数字的平方,其中大小“n”存储在偏移量500处,数字从偏移量501存储,并将结果数字存储到偏移量501中。(假设正方形仅限于8位)。

null

例如——

图片[1]-8086程序,用于确定n个数的数组中的数的平方-yiteyi-C++库

算法-

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

项目-

内存地址 助记符 议论
400 MOV SI,500 SI
403 MOV-CL[SI] CL
405 MOV CH,00 CH
407 公司SI SI
408 MOV AL[SI] AL
40A 穆勒 AX=AL*AL
40摄氏度 MOV[SI],AL AL->[SI]
40E 公司SI SI
40F 回路408 如果是CX,跳到408=0和CX=CX-1
411 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 AL,[SI]: 将值从偏移量SI加载到寄存器AL
  6. 穆勒: 将寄存器AL的值乘以AL。
  7. MOV[SI],AL: 在偏移量SI处存储寄存器AL的值。
  8. 公司SI: 增加SI值1。
  9. 循环408: 如果CX不是0且CX=CX-1,则跳转到地址408。
  10. HLT: 停止
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享