怎样用汇编语言实现求“1+2+3……+100”的和啊?

如题所述

DSEG SEGMENT
RESULT DW ?;存放和
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:
MOV AX,DSEG
MOV DS,AX
MOV AX,1;从1开始加
MOV RESULT,0;和的初值赋0
MOV CX,100;循环100次
NEXT:
ADD RESULT,AX;每次向和中累加AX
INC AX;然后AX加1
LOOP NEXT
MOV AX,4C00H;结束程序
INT 21H
CSEG ENDS
END START
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-10-30
用高斯算法,1+100=101、2+99=101所以101*50=5050
第2个回答  2013-07-25
利用递归算法
DESG SEGMENT
N DW 100
RESULT DW
DESG ENDS
SSEG SEGMENT STACK
DW 512 DUP(?)
SSEG ENDS
CSEG1 SEGMENT
ASSUME CS:CSEG1,DS:DSEG,SS:SSEG
START:
MOV AX,DESG
MOV DS,AX
PUSH AX
PUSH N
CALL SUM
POP RESULT
MOV AH,4CH
INT 21H
CSEG1 ENDS
CSEG2 SEGMENT
ASSUME CS:CSEG2,SS:SSEG
PARN EQU 6[BP]
PARSUM EQU 8[BP]
SUM PROC FAR
PUSH BP
MOV BP,SP
PUSH AX
MOV AX,PARN
CMP AX,0
JNZ SUM1
MOV AX,0
JMP EXIT
SUM1:SUB SP,2
DEC AX
PUSH AX
CALL SUM
POP AX
ADD AX,PARN
EXIT:MOV PARSUM,AX
POP AX
POP BP
RET 2
SUM ENDP
CSEG2 ENDS
END START
序经过调试。
第3个回答  2007-11-02
第二个不错