汇编语言编程计算问题

2、编程计算 S=1+2*3+3*4+4*5+……+N*(N+1),N由用户输入,将结果在屏幕显示‘

3、编程计算SUM=1!+2!+3!+4!+5!,将结果输出,需要有子程序

一定要汇编的

;汇编语言编程
;计算 S=1+2*3+3*4+4*5+……+N*(N+1),N由用户输入,将结果在屏幕显示

;---------------------------
ASSUME CS:CC, DS:QW
;---------------------------
QW SEGMENT
M1 DB 13, 10, 'Please input n : $'
M2 DB 13, 10, 'SUM = $'
M3 DB 13, 10, 'OVER ! $'
M4 DB 13, 10, 'Press any key to continue ... $'
N DW ?
N2 DW 2
S DW 1
QW ENDS
;---------------------------
CC SEGMENT
START:
MOV AX, QW
MOV DS, AX
;
LEA DX, M1
MOV AH, 9
INT 21H

CALL INPUT
CMP CX, 1
JB EXIT
INC CX
MOV N, CX
L_ADD:
MOV AX, N2
CMP AX, N
JE DISP
INC N2
MUL N2
CMP DX, 0
JNZ YICHU
ADD S, AX
JC YICHU
JMP L_ADD
DISP:
LEA DX, M2
MOV AH, 9
INT 21H

MOV AX, S
CALL OUTPUT
JMP EXIT
YICHU:
LEA DX, M3
MOV AH, 9
INT 21H
EXIT:
LEA DX, M4
MOV AH, 9
INT 21H
MOV AH, 7
INT 21H

MOV AH, 4CH
INT 21H ;返回DOS
;---------------------------
INPUT:
MOV BL, 10
MOV CX, 0
IN_X:
MOV AH, 7
INT 21H
CMP AL, 13
JE IN_END
CMP AL, '0'
JB IN_X
CMP AL, '9'
JA IN_X
MOV DL, AL
MOV AH, 2
INT 21H
MOV AL, DL
SUB AL, 30H
MOV AH, 0
XCHG AX, CX
MUL BL
ADD CX, AX
CMP CH, 0
JNZ IN_END
JMP IN_X
IN_END:
RET
;---------------------------
OUTPUT:
MOV BX, 10
MOV CX, 0
OL1:MOV DX, 0
DIV BX
ADD DL, '0'
PUSH DX
INC CX
CMP AX, 0
JNZ OL1
MOV AH, 2
OL2:POP DX
INT 21H
LOOP OL2
RET
;---------------------------
CC ENDS
END START
;---------------------------追问

谢谢。那第二个怎么做、

追答

我正在编写。

先采纳这个,另外的,再提问吧。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-13

做了第一个,试试吧

相似回答