Question
Assembly Language: Using the following code template, also available in your examples directory downloaded with the Irvine code, encrypt a string representing your last name
Assembly Language:
Using the following code template, also available in your examples directory downloaded with the Irvine code, encrypt a string representing your last name and decrypt it back. Upload the zipped .asm file and the listing file of your code.
Top of Form
Flag this Question
Question
; Encryption Program (Encrypt.asm)
; This program demonstrates simple symmetric ; encryption using the XOR instruction.
INCLUDE Irvine32.inc KEY = 239 ; any value between 1-255 BUFMAX = 128 ; maximum buffer size
.data sPrompt BYTE "Enter the plain text: ",0 sEncrypt BYTE "Cipher text: ",0 sDecrypt BYTE "Decrypted: ",0 buffer BYTE BUFMAX+1 DUP(0) bufSize DWORD ?
.code main PROC call InputTheString ; input the plain text call TranslateBuffer ; encrypt the buffer mov edx,OFFSET sEncrypt ; display encrypted message call DisplayMessage call TranslateBuffer ; decrypt the buffer mov edx,OFFSET sDecrypt ; display decrypted message call DisplayMessage
exit main ENDP
;----------------------------------------------------- InputTheString PROC ; ; Prompts user for a plaintext string. Saves the string ; and its length. ; Receives: nothing ; Returns: nothing ;----------------------------------------------------- pushad mov edx,OFFSET sPrompt ; display a prompt call WriteString mov ecx,BUFMAX ; maximum character count mov edx,OFFSET buffer ; point to the buffer call ReadString ; input the string mov bufSize,eax ; save the length call Crlf popad ret InputTheString ENDP
;----------------------------------------------------- DisplayMessage PROC ; ; Displays the encrypted or decrypted message. ; Receives: EDX points to the message ; Returns: nothing ;----------------------------------------------------- pushad call WriteString mov edx,OFFSET buffer ; display the buffer call WriteString call Crlf call Crlf popad ret DisplayMessage ENDP
;----------------------------------------------------- TranslateBuffer PROC ; ; Translates the string by exclusive-ORing each ; byte with the encryption key byte. ; Receives: nothing ; Returns: nothing ;----------------------------------------------------- pushad mov ecx,bufSize ; loop counter mov esi,0 ; index 0 in buffer L1: xor buffer[esi],KEY ; translate a byte inc esi ; point to next byte loop L1
popad ret TranslateBuffer ENDP END main
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started