Click here to Skip to main content
15,895,808 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
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
Posted

1 solution

C++
; get the plaintext
LEA DX,TEXT
MOV AH,10   ; are you sure this reads text?
INT 21H

MOV CL,TEXT
ENCRYPT_NEXT:
ADD CL,VLE 
MOV [DI], CL    ; What does DI point to?
INC DI
LOOP ENCRYPT
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900