Files to submit: divAssempbly.s
Time it took Matthew to complete: 15 mins
• All programs must compile without warnings when using the -Wall and -Werror options
• Submit only the files requested
◦ Do NOT submit folders or compressed files such as .zip, .rar, .tar, .targz, etc • If submitting in a group on Grade Scope please make sure to mark your partner.
◦ Only one of you has to submit there
• Your program must match the output exactly to receive credit.
◦ Make sure that all prompts and output match mine exactly.
◦ Easiest way to do this is to copy and paste them
• All input will be valid unless stated otherwise
• Print all real numbers to two decimal places unless otherwise stated
• The examples provided in the prompts do not represent all possible input you can receive.
• All inputs in the examples in the prompt are underlined
◦ You don’t have to make anything underlined it is just there to help you differentiate between what you are supposed to print and what is being given to your program
• If you have questions please post them on Piazza
Translate the C program you wrote to do division in constant time into an assembly program called
divAssembly.s.
1. The label for the dividend is dividend
1. 4 bytes of space should be made for the dividend 2. The label for the divisor is divisor
1. 4 bytes of space should be made for the divisor
3. Place the quotient in EAX
4. Place the remainder in EDX
5. Don’t forget that if you want to shift by a variable amount the shift amount must be placed
in CL. Your assembly code won’t work if you try to place it in any other register.
6. AFTER the last line of code that you wish to be executed in your program please place the
label done.
1. Make sure that there is an instruction after the done line and a new line after that
instruction. If you don’t your output won’t match mine.S
7. IT IS OF VITAL IMPORTANCE THAT YOU NAME YOUR LABELS AS
SPECIFIED AND MAKE THE APPROPRIATE AMOUNT OF SPACE FOR EACH VARIABLE! I will be using gdb to test your code and if your labels do not match then the tests will fail. You must also make sure to include the done label AFTER the last line of code you want executed in your program so that I know where to set break points.