masm中从键盘让用户输入一个正整数,输出该整数的所有因子。

2025-03-13 17:01:08
推荐回答(1个)
回答1:

;从一加到十,并把结果分别安十进制和十六进制输出
code segment
assume cs:code
start: mov cx,10
xor ax,ax
mov bx,1
don: add ax,bx
inc bx
dec cx
jnz don
MOV BX,AX
call DISPBXD
CALL DISPBXH
mov ah,4ch
int 21H
DISPBXD PROC NEAR
PUSH CX
PUSH SI
PUSH AX
PUSH BX
PUSH DX
MOV SI,10
XOR CX,CX
MOV AX,BX
NEXT: MOV DX,0
DIV SI
PUSH DX
INC CX
CMP AX,0
JNZ NEXT
OUTP: POP DX
ADD DL,30H
MOV AH,2
INT 21H
LOOP OUTP
MOV DL,0AH
MOV AH,2
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
POP DX
POP BX
POP AX
POP SI
POP CX
RET
DISPBXD ENDP
DISPBXH PROC NEAR
PUSH CX
PUSH BX
PUSH AX
PUSH DX
MOV CL,4
MOV CH,4
NEXT1:ROL BX,CL
MOV AL,BL
AND AL,0FH
ADD AL,30H
CMP AL,3AH
JL OUTP1
ADD AL,07H
OUTP1: MOV DL,AL
MOV AH,02H
INT 21H
DEC CH
CMP CH,0
JA NEXT1
MOV DL,'H'
MOV AH,2
INT 21H
POP DX
POP AX
POP BX
POP CX
RET
DISPBXH ENDP

code ends
end start
你看下是否有用
老大你上过百度账号没呀?