问题描述
DATA SEGMENT
INFO0 DB 10,'选项(1)加密,(2)解密,(3)退出:$'
INFO1 DB 13,10, '请输入一个关键值(1-9):$'
INFO2 DB 13,10,'明文是:$'
INFO3 DB'再见!$'
VLE DB 100 DUP
MENU DB 3
KEY DB'1'
TEXT DB 40,?, 40 DUP,?,
CRLF DB 0AH,0DH,'$'
CRLF2 DB 0AH,0DH,0AH,0DH,'$'
数据结束
代码段
ASSUME CS:代码,DS:数据
START:
MOV AX,DATA
MOV DS,AX
主要:
;打印主菜单
LEA DX,INFO0
MOV AH,9
INT 21H
;得到选项
MOV AH,1
INT 21H
;根据用户的选择
CMP AL,'1'
JZ ENCRYPT;测试是否加密
JMP QUIT;退出其他选项
ENCRYPT:
;问钥匙
LEA DX,INFO1
MOV AH,9
INT 21H
;得到钥匙
MOV AH,1
INT 21H
MOV VLE,AL
;问明文
LEA DX,INFO2
MOV AH,9
INT 21H
;获得明文
LEA DX,TEXT
MOV AH,10
INT 21H
MOV CL,TEXT
ENCRYPT_NEXT:
ADD CL,VLE
MOV [DI],CL
INC DI
LOOP ENCRYPT
MOV DX,OFFSET INFO2
MOV AH,9; lead mes_0
INT 21H
MOV DX,抵消DI
mov AH,9
INT 21H
退出:
;说再见
LEA DX,INFO3
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
代码结束
END START
DATA SEGMENT
INFO0 DB 10,'Options (1)Encrypt, (2)Decrypt, (3) Exit: $'
INFO1 DB 13, 10,'Please input a key value (1-9): $'
INFO2 DB 13, 10,'The plaintext is: $'
INFO3 DB 'Goodbye!$'
VLE DB 100 DUP
MENU DB 3
KEY DB '1'
TEXT DB 40, ?, 40 DUP,?,
CRLF DB 0AH, 0DH, '$'
CRLF2 DB 0AH, 0DH, 0AH, 0DH, '$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MAIN:
; print the main menu
LEA DX,INFO0
MOV AH,9
INT 21H
; get the option
MOV AH,1
INT 21H
; at user's option
CMP AL,'1'
JZ ENCRYPT ; test if encrypt
JMP QUIT ; exit on other options
ENCRYPT:
; ask the key
LEA DX,INFO1
MOV AH,9
INT 21H
; get the key
MOV AH,1
INT 21H
MOV VLE, AL
; ask the plaintext
LEA DX,INFO2
MOV AH,9
INT 21H
; get the plaintext
LEA DX,TEXT
MOV AH,10
INT 21H
MOV CL,TEXT
ENCRYPT_NEXT:
ADD CL,VLE
MOV [DI], CL
INC DI
LOOP ENCRYPT
MOV DX, OFFSET INFO2
MOV AH, 9 ;lead mes_0
INT 21H
MOV DX,offset DI
mov AH,9
INT 21H
QUIT:
; say goodbye
LEA DX,INFO3
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
推荐答案
这篇关于有人能告诉我这段代码中哪里有错误,它无法加密。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!