主题:【求助】中断程序设计——密码转换
要求按照0~9分别对应7846302951的规则,输出密码字符串。
要用dos的01和09功能调用。
先来献丑
DSEG SEGMENT
L1 DB 21 DUP('$')
L2 DB '7846302951'
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
MAIN PROC FAR
PUSH DS
MOV AX,0
PUSH AX
CLI
MOV AX,SEG NEWINT65
MOV DS,AX
MOV DX,OFFSET NEWINT65
MOV AL,65H
MOV AH,25
INT 21H
STI
MOV AX,DSEG
MOV DS,AX
INT 65H
RET
MAIN ENDP
NEWINT65 PROC FAR
PUSH DX
PUSH CX
PUSH BX
PUSH AX
PUSH SI
MOV CL,OFFSET L2
MOV DL,OFFSET L1
MOV SI,0
LOOP1:MOV AH,01
INT 21H
CMP AL,0AH
JZ ED
SUB AL,30H
MOV BL,[CL+AL];这里有错误
MOV L1[SI],BL
INC SI
JMP LOOP1
ED: MOV DX,OFFSET L1
MOV AH,09H
INT 21H
POP SI
POP AX
POP BX
POP CX
POP DX
IRET
NEWINT65 ENDP
CSEG ENDS
END MAIN
要用dos的01和09功能调用。
先来献丑
DSEG SEGMENT
L1 DB 21 DUP('$')
L2 DB '7846302951'
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
MAIN PROC FAR
PUSH DS
MOV AX,0
PUSH AX
CLI
MOV AX,SEG NEWINT65
MOV DS,AX
MOV DX,OFFSET NEWINT65
MOV AL,65H
MOV AH,25
INT 21H
STI
MOV AX,DSEG
MOV DS,AX
INT 65H
RET
MAIN ENDP
NEWINT65 PROC FAR
PUSH DX
PUSH CX
PUSH BX
PUSH AX
PUSH SI
MOV CL,OFFSET L2
MOV DL,OFFSET L1
MOV SI,0
LOOP1:MOV AH,01
INT 21H
CMP AL,0AH
JZ ED
SUB AL,30H
MOV BL,[CL+AL];这里有错误
MOV L1[SI],BL
INC SI
JMP LOOP1
ED: MOV DX,OFFSET L1
MOV AH,09H
INT 21H
POP SI
POP AX
POP BX
POP CX
POP DX
IRET
NEWINT65 ENDP
CSEG ENDS
END MAIN