本文介绍了有人能告诉我这段代码中哪里有错误,它无法加密。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

推荐答案




这篇关于有人能告诉我这段代码中哪里有错误,它无法加密。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-25 02:29