设某个字节数组ARRAY中存放有NN个数据元素如在主程序中通过以下三条指令调用子程序PROCZ,以求数组中所有元素之和,并把结果

设某个字节数组ARRAY中存放有NN个数据元素如在主程序中通过以下三条指令调用子程序PROCZ,以求数组中所有元素之和,并把结果存入SUM单元,则子程序PROCZ应如何编写?
LEA  BX,ARRAY
MOV  CX,NN
CALL  PROCZ
【正确答案】:PROCZ PROC
PUSH AX
XOR AX,AX
LPI:ADD AX,[BX]
INC BX
LOOP LPI
MOV SUM,AX
POP AX
RET
PROCZ ENDP
【题目解析】:先把AX入栈,保护现场,然后把AX清零,进入LPI循环,把BX中的内容与AX相加,和存入到AX中,BX指向下一个元素,CX减1,如果不为0,继续循环相加,直到把NN个数据都加完,此时AX中存放的就是和,把AX中的内容存入SUM单元,再把AX出栈,恢复现场。