Proj 12x: 64-bit Assembler Challenges (25 pts.)

What You Need

Purpose

To learn the basics of 64-bit Assembly programming, making several simple programs.

Challenge 1: Hello (5 pts.)

Write an assembly program that does these things: Turn in a full-desktop image showing a successful execution of your program, followed by its source code, as shown below.

Hints

  • You can look up ASCII codes here
  • You can only put 64 bits into rax, so you will need several PUSH instructions

Challenge 2: Caesar #3 (5 pts.)

Write an assembly program that does these things: Turn in a full-desktop image showing a successful execution of your program on the input HELLO, followed by its source code, as shown below.

Challenge 3: XOR (15 pts.)

Write an assembly program that does these things: Turn in a full-desktop image showing a successful execution of your program on the input:

cnit127!

The correct encoded text is:

'!.0~usn

Also include your source code, as shown below. (Your source code will be longer.)

Hints

  • To encrypt with a multi-byte key of "DOG", encrypt the first byte with "D", the second byte with "O", and the third byte with "G". Then repeat the key, encrypting the fourth byte with "D" and so on. This means there is no difference between a key of "DOG" and a key of "DOGDOGDO", as long as the input is eight bytes or less.

Turning In Your Project

Email the images to cnit.127sam@gmail.com with a subject of "Project 12x from YOUR NAME".


Sources

Online XOR Calculator


Last modified 10-12-15 3 pm