Computer Architecture Iilab5- ACOE301

Computer Architecture Iilab5- ACOE301

Computer Architecture IILab5- ACOE301

Computer Science and Engineering Department

Computer Architecture II (ACOE301)

Laboratory Exercise #7

Loops

Student’s Name:
Semester: / Date:

Assessment:

Assessment Point / Weight / Grade
Methodology
Presentation and discussion of results
Participation

Assessment Points’ Grade

Comments:

Exercise #6:Loops,asciiz, system call

Hint: You can use the lecture notes found in

Objectives:

The objectives of this experiment is to show students the use of loops, and ascii in MIPS assembly.

A Caesar Cipher was used back in the days of Caesar to encrypt and decrypt messages. It was done by shifting the encrypted messages an X number of positions where X was the key. For example if the message was “hello” and the key was 2 it was encrypted to “jgnnq”. (i.e., ‘h’ became ‘j”).

Your task is to write the code that decrypts the code by trying a range of possible keys in the English alphabet (max 25keys). Your code should put the corresponding decrypted messages and keys in a buffer. E.g., 1tjtc2kkld3like – the numbers 1, 2, and 3 are the keys and they are followed by the decrypted message/plaintext.

a) Open notepad and enter the following code:

.data

KeyRange: .word 10

Plaintext: .asciiz“Xliaexivaewewgsphewmgierhwyhhirpcaiwea”

.text

main:#enter your code here

addi $v0, $0, 10#exit program

syscall

b) In the .asciiz segment you will find the ciphertext. Read it and then decrypt by trying a range of keys. Be cautious for the case where the letter loops back (i.e., goes back)from the beginning of thealphabet to the end of alphabet. E.g., “b” is decrypted to “z” with a key of 2. The KeyRangedesignates the number of keys that can be tried. For example if Keyrange=2 then your code should try for k=1 and k=2.

c) Save the file as "lab7.s" or "lab7.asm" including the quotes. Make sure the file is saved as "all files".

d) Run SPIM.

e) From the SPIM menu select "File => Load File". Select the file you created.

f)Run the program and verify its operation. If necessary, single step through the program or use breakpoints to debug it.

Questions

1. How many instructions did your program contain?

2. How many registers did your program require?

3. What is the decrypted message above?

What is the key?

4. Change the ciphertext to “knqxgvjkuencuu”

What is the decrypted message?

What is the key?

1