汇编语言编程实现1+2+3+…前N项和,将结果存入AX并显示

来源:百度知道 编辑:UC知道 时间:2024/06/07 04:52:15

DATAG SEGMENT
N EQU 20
VAR DW N
BUFFER DB 20H DUP (?)
DATAG ENDS
SSG SEGMENT
DW 20H DUP (0)
SSG ENDS
CODEG SEGMENT
ASSUME CS:CODEG,DS:DATAG,SS:SSG
START:MOV AX,DATAG
MOV DS,AX
MOV AX,0
MOV BX,0
MOV SI,-1
JUMP:INC BX
ADD AX,BX
CMP BX,VAR
JNE JUMP ;add to N
MOV DL,10
JUMP1:DIV DL
INC SI
MOV BUFFER[SI],AH
CBW
CMP AL,0
JNE JUMP1
MOV CX,SI
INC CX
LOP:
ADD BUFFER[SI],30H
MOV DL,BUFFER[SI]
MOV AH,02H
INT 21H
DEC SI
LOOP LOP
MOV AH,4CH
INT 21H
CODEG ENDS
END START
其中N值可以在一定的范围内任意的给定.只要相加不使AX寄存器产生溢出!