Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Assembly Programming Questions: Q1. Add something to the codes in the Encrypt.as

ID: 3757331 • Letter: A

Question

Assembly Programming Questions:

Q1. Add something to the codes in the Encrypt.asm file below and tell me what you added.

; 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

Explanation / Answer

It's XOR's with the f(Key) where f is some function, all computations have to be undone except the ones that make up f - they have to be done normally.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote