43 lines
1.1 KiB
NASM
43 lines
1.1 KiB
NASM
; 实验4_2: 循环程序设计二 - 多重循环求累加和
|
||
; 功能:利用二重循环求累加和
|
||
; 说明:外层循环控制内层循环的执行次数
|
||
; 作者:
|
||
; 日期:2026-05-14
|
||
|
||
DATAS SEGMENT
|
||
LIST DB 01H,02H,03H,04H,05H,06H,07H,08H,09H,0AH
|
||
COUNT EQU 10
|
||
RESULT DB ?
|
||
DATAS ENDS
|
||
|
||
CODES SEGMENT
|
||
ASSUME CS:CODES, DS:DATAS
|
||
START:
|
||
MOV AX, DATAS
|
||
MOV DS, AX
|
||
|
||
LEA SI, LIST ; SI指向数据表首地址
|
||
MOV CX, COUNT ; 外层循环计数
|
||
XOR BL, BL ; BL清0,累加和初值为0
|
||
|
||
L1:
|
||
PUSH CX ; 保存外层循环计数
|
||
MOV CX, COUNT ; 内层循环计数
|
||
XOR BH, BH ; BH清0
|
||
|
||
L2:
|
||
MOV AL, [SI] ; 取出数据
|
||
ADD BH, AL ; 内层累加到BH
|
||
INC SI ; SI指向下一个数据
|
||
LOOP L2 ; 内层循环
|
||
|
||
POP CX ; 恢复外层循环计数
|
||
ADD BL, BH ; 外层累加
|
||
LOOP L1 ; 外层循环
|
||
|
||
MOV RESULT, BL ; 保存结果
|
||
|
||
MOV AH, 4CH
|
||
INT 21H
|
||
CODES ENDS
|
||
END START |