CSCI 360 | Spring 2014 |
The following questions are taken from the first examination of previous semesters. They will not appear on this semester's first exam, but they are similar to questions which likely will. Be sure to not limit your review to just these questions.
Convert the following UNSIGNED numbers: DECIMAL BINARY HEXADECIMAL 2345 ___________________________ _______________ ______________ 110010011110 _______________ ______________ ___________________________ 235B Do the following UNSIGNED integer arithmetic: BINARY 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 + 1 0 1 1 1 0 1 1 1 1 - 1 0 0 0 0 1 1 1 1 --------------------- --------------------- HEXADECIMAL 8 6 7 B 3 F 0 A 7 D C 0 + E 8 F 9 - 1 0 C F B A 4 D --------- ----------------- Do the following FULLWORD (two's complement) arithmetic and determine if any overflow occurred and EXPLAIN why or why not: 5 8 9 A B 8 7 E C 8 5 2 9 A C D + 4 7 B F 8 7 5 2 - C 4 8 8 6 B A 6 ----------------- ----------------- Write the correct number in each blank: A fullword contains_____bytes. A fullword contains_____bits. RR instruction size =_____bytes. RX instruc. size =_____bytes. A PSW contains ____ bits or ____ bytes or _____ fullwords. What is the ANSI print carriage control character for: Note: A blank with nothing written in it is NOT an answer! a. Top of Page______ b. Single Space______ c. Double Space______ d. Triple Space______ Given the following register contents, calculate absolute addresses (in Hexadecimal) for the D(B) or D(X,B) addresses given below (6 points) R0 = 00000040 R1 = F4F4F4F4 R2 = 00000359 R3 = 80012345 35(0,3) ____________ 28(1) ____________ 16(2,3) ____________ Answer the following questions using the PSW AT ABEND given below. Give 'address' answers in hexadecimal. PSW AT ABEND FFC50001 5F000E34 Contents of memory starting at address (hex) 000E20 Address Contents 000E20 40125802 5012D503 50301231 5872F01C 1A5500CC 47B0F010 1. What is the address of the instruction WOULD HAVE BEEN EXECUTED NEXT had the program not ABENDed on the current Instruction? ___________________________ 2. What is the length (in bytes) of the instruction that caused the ABEND? ___________________________ 3. What is the condition code? (Answer with decimal number) ____ 4. What is the address of the instruction that caused the ABEND? __________________________ 5. What type of program interrupt occurred? Number ____________ Name __________________________________ 6. Write the NEXT instruction that would have been executed as the programmer would have written it in EXPLICIT assembler language using decimal values. _________________________________________________________ Encoding/Decoding. (26 points) Fill in the blanks on the assembly listing below, using IMPLICIT addresses where possible: LOCATION COUNTER MACHINE SOURCE VALUE (HEX) LANGUAGE (HEX) LANGUAGE 000000 EXAM1 CSECT 000000 USING EXAM1,15 000000 _______________ L 2,F33 ________ _______________ LA 3,3 ________ _______________ MR 2,2 ________ 5020 F034 _______________ ________ _______________ AR 3,3 ________ 5D20 F02C _______________ ________ 47A0 E000 _______________ ________ _______________ BR 14 ________ _______________ F129 DC F'129' 000020 _______________ F33 DC F'33' ________ _______________ AB DC 2CL3'AB' ________ _______________ BC DC F'-15' ________ _______________ CD DC 3C'''' ________ _______________ TOTAL DS F'33' END EXAM1 Write assembly instructions to perform the following tasks. (Define any extra storage you reference.) Inefficient code will not receive full credit. Use literals where possible. 1. Quadruple the value in register 2. 2. Increment the value in register 7 by 5182. 3. Initialize register 0 to zero. 4. Multiply the contents of register 11 by -99. 5. Divide the contents of register 8 (which contains 32) by the contents of register 6. 6. Test the contents of registers 2 and 3. Branch to the label FOUND if the contents of register 2 are not equal to the contents of register 3. 7. Write the equate statement necessary to equate the value 3 with the symbol SAVE. 8. Save the contents of register 10 into a fullword labelled TRUMP. Given the starting values listed for registers and a portion of storage, show the complete contents (in hex) after execution of the instruction. Starting values apply to each instruction. Results are NOT cumulative. STARTING VALUES (For EACH INSTRUCTION): R0 = 00000200 R1 = FF000204 R3 = 0000036C R4 = FFFFFFFF R5 = FFFFFFFF R6 = 00000004 R7 = 00000064 R8 = 00000004 ADDRESS CONTENTS 000200 F5F5F5F5 0000003C 00000123 00000008 LR 5,6 R5 = _____________ LA 1,2(0,3) R1 = _____________ L 6,4(6,1) R6 = _____________ DR 4,8 R4 = _____________ R5 = _____________ AR 0,6 R0 = _____________ MR 4,4 R4 = _____________ R5 = _____________ LTR 3,4 R3 = _____________ Write the assembler source code to implement the expression below. Assume that all fields have already been correctly defined as fullwords in your storage area. Provide all necessary labels. Use literals if appropriate. Rounding is NOT necessary. VALUE = ((NUM4 - NUM3)/2) * NUM2) + NUM4 The following complete assembly language program reads an unknown number of 80 byte records and calculates the average of the first number found on all records. Some parts of the program have been left out, and you are to fill in each blank with the appropriate value. What follows is the complete program: no additional fields are available, nor may they be written in. CALCUL8 CSECT , Begin program USING ________________ Define base register SR 3,3 Initialize sum of card values SR 4,4 Initialize count of valid values XREAD CARD,80 Read first record * LOOP BC ____________,EOF Finished if no more records XDECI ________________ Get first number from record BC ________________ B if none found AR 3,0 Else add to total A 4,______________ And increment count of numbers NEXTCARD XREAD CARD,80 Get next input record ______________________ Continue * EOF LTR 4,______________ Any numbers found? BC B'1000',SAVE No, save zero M 2,______________ Prepare to divide DR 2,______________ Get average in R3 AR 2,2 Double the remainder CR 2,______________ Compare with divisor BC ___________,SAVE Branch if no rounding needed A 3,______________ Else round up * SAVE ST 3,AVG Save for XDUMP XDUMP ________________ Display value saved above BCR ________________ Return to caller * ______________________ (This belongs in every program!) CARD DS ________________ DC ________________ AVG DS ________________ END CALCUL8