
怎样用汇编语言实现求“1+2+3……+100”的和啊?
4个回答
展开全部
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
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+100=101、2+99=101所以101*50=5050
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
利用递归算法
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
序经过调试。
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
序经过调试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第二个不错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询