求个大神帮忙解释一下这段汇编代码

发布时间:2019-07-30 03:19:35

提示输入数字,输入任意数字int,点击Enter结束输入。输出“1+2+3+……+int”的值

DSEG SEGMENT

S0 DB 'INPUT N(1<N<256):$'

S1 DB 0DH, 0AH, '$'

N DB 5

DB 0

DB 5 DUP(0)

N0 DW 0

DSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG, DS:DSEG

START:

MOV AX, DSEG

MOV DS, AX

LEA DX, S0

MOV AH, 9

INT 21H

MOV AH,10

LEA DX, N

INT 21H

CALL CONVN2INT

MOV AH,9

LEA DX, S1

INT 21H

MOV CX, N0

MOV BX, 1

XOR AX, AX

M0:

ADD AX, BX

INC BX

LOOP M0

CALL PRINT

MOV AX, 4C00H

INT 21H

CONVN2INT PROC NEAR

XOR CX, CX

MOV CL, N+1

MOV SI, 2

XOR AX, AX

MOV BX, 10

C0:

MOV AL, [N+SI]

AND AL, 0FH

XCHG AX, N0

MUL BX

XCHG AX, N0

ADD N0, AX

INC SI

LOOP C0

RET

CONVN2INT ENDP

PRINT PROC NEAR

XOR CX, CX

MOV BX, 10

P0:

XOR DX, DX

DIV BX

XOR DX, 0E30H

PUSH DX

INC CX

CMP AX, 0

JNZ P0

P1:

POP AX

INT 10H

LOOP P1

RET

PRINT ENDP

CSEG ENDS

END START


推荐回答

还没有选出推荐答案,请稍候访问或查看其他回答!
以上问题属网友观点,不代表本站立场,仅供参考!