Difference between revisions of "CSC231 Homework 7 Fall 2012"

From dftwiki3
Jump to: navigation, search
(Problem #2)
(Problem #2)
Line 34: Line 34:
 
   
 
   
 
  xLen    dd    18
 
  xLen    dd    18
  x        db    0xd1, 0x41, 0xd5, 0x03, 0x81, 0xee, 0x5c, 0x0d,
+
  x        db    0xd1, 0x41, 0xd5, 0x03, 0x81, 0xee, 0x5c, 0x0d
 
           db    0x55, 0x40, 0x21, 0x40, 0xd1, 0xe0, 0x9e, 0x0c, 0x9d, 0x10
 
           db    0x55, 0x40, 0x21, 0x40, 0xd1, 0xe0, 0x9e, 0x0c, 0x9d, 0x10
 
   
 
   
  
Your program will contain the following 2 strings and should decode and print them.
+
Your program must decode the two strings listed below and print them on the screen.  Your program should replace the character '@' with a space.
 +
 
 +
yLen    dd    17
 +
y        db    0xd5, 0x54, 0x03, 0x1e, 0x49, 0x40, 0xf2, 0x1d
 +
          db    0x10, 0x1e, 0x40, 0x2f, 0xe9, 0x0f, 0x60, 0x71, 0xe1
 +
xLen    dd    18
 +
x        db    0xd1, 0x41, 0xd5, 0x03, 0x81, 0xee, 0x5c, 0x0d
 +
          db    0x55, 0x40, 0x21, 0x40, 0xd1, 0xe0, 0x9e, 0x0c, 0x9d, 0x10

Revision as of 13:21, 24 October 2012

--D. Thiebaut 13:47, 24 October 2012 (EDT)


This assignment is due the evening of Oct. 31st, at midnight (booo!). You can work on this assignment in pairs.

Problem #1

Write a program that displays the contents of a double-word in hexadecimal. Your program should store the value 0x1234ABCD in a variable called x and should display this information:

  x = 305441741 = 0x1234ABCD


Submission

Submit your program (called hw7a.asm) as follows:

 rsubmit hw7 hw7a.asm

Problem #2

Take a look at the section of the ASCII table below:


ASCIIUpperCase.png


Concentrate on the hexadecimal code for each letter. You will notice that 'A' through 'O' have the same upper nybble. 'A' is 0x41 and 'O' is 0x4F. So, if I wanted to squeeze a string made of upper-case letters between 'A' and 'O', I would only need to store the lower nybble, and I'd save some memory.

The purpose of this problem is for you to take a string created using this method, decode it, and print it on the screen.

Let's look at an example. Look at the 2 variables below. xLen is a double word, and contains 18. That represents the number of characters coded in the string x. The first byte of x is 0xd1, which means that the first characters of the original string are 0x4d and 0x41, or 'M' and 'A'. So your program will output 'M' then 'A' when it decodes the string.


xLen     dd     18
x        db     0xd1, 0x41, 0xd5, 0x03, 0x81, 0xee, 0x5c, 0x0d
         db     0x55, 0x40, 0x21, 0x40, 0xd1, 0xe0, 0x9e, 0x0c, 0x9d, 0x10

Your program must decode the two strings listed below and print them on the screen. Your program should replace the character '@' with a space.

yLen     dd     17
y        db     0xd5, 0x54, 0x03, 0x1e, 0x49, 0x40, 0xf2, 0x1d 
         db     0x10, 0x1e, 0x40, 0x2f, 0xe9, 0x0f, 0x60, 0x71, 0xe1
xLen     dd     18
x        db     0xd1, 0x41, 0xd5, 0x03, 0x81, 0xee, 0x5c, 0x0d
         db     0x55, 0x40, 0x21, 0x40, 0xd1, 0xe0, 0x9e, 0x0c, 0x9d, 0x10