View Single Post
Old Nov 12th, 2007, 2:42 AM   #1
jbo423
Newbie
 
Join Date: Nov 2007
Posts: 3
Rep Power: 0 jbo423 is on a distinguished road
quick assembly question

I am currently taking a course in C++ at the University of Delaware, and my professor gave my class an extra credit project on assembly. I'm NOT looking for answers to these questions, just general help on finding the resources and some guides on the basics of assembly.


1. Disassemble the following machine code into operations and arguments, e.g. ADD, R1, R2, R3, etc., and explain what it does in either plain english or in C++ pseudocode.

0x00: 0000 0111 1111 1111
0x02: 0000 0110 1001 0010
0x04: 0000 0110 1100 1010
0x06: 0000 0011 1111 1010
0x08: 0010 1000 0111 0011
0x0A: 0010 0010 1001 0000
0x0C: 0011 1000 0100 0000
0x0E: 0011 1100 0000 0000


2. If the register file (each register is 32-bit) has the initial image as the following, what does the register file look like when the program stops?

R0: 0x 00 00 00 00
R1: 0x 00 00 00 0A
R2: 0x 00 00 00 00
R3: 0x 00 00 00 00
R4: 0x 00 00 00 00
R5: 0x 00 00 00 00
R6: 0x 00 00 00 00
R7: 0x 00 00 00 00


3. Write assembly code for a program that counts the number "1" bits of an integer in binary (given in regiser R1) and store the result in R7. This amounts to translating the following C-like code into assembly:

count = 0;
while (x != 0)
{
if (x & ox01 == 1)
count = count + i;
x = x >> 1;
}
return count;

the project is due by tuesday to recieve the extra credit. If anyone knows of a good assembly tutorial that would cover these types of questions, or if anyone has any tips or hints to give, they would be greatly appreciated.

Thanks!
jbo423 is offline   Reply With Quote