Michael Adams Assembly Lang Homework Exercise 2.2.1 Letters DB ‘ABC’ = Letters: 41 42 43 Digits DB 1,2,3 = Digits: 1 2 3 More DB ‘e’, 10, ‘fg’ = More: 65 10 102 103 Hush DB 5 Dup (‘s’), ‘h!’ = Hush: 53 48 21 53 48 21 53 48 21 53 48 21 53 48 21 Two3 DB 3 Dup (2,3,?) = Two3: 2 3 ? 2 3 ? 2 3 ? Recourse DB 2 Dup (‘x’, 3 Dup (u) = Recourse: 78 75 75 75 78 75 75 75 Exercise 5.1.1 a. cmp A, 0 jnge lab1 mov ax, A mov X, ax jmp lab2 lab1: mov ax, A neg ax mov X, ax lab2 b. mov ax, A cmp ax, B mov Max, A jle lab1 lab1: mov Max, B c. cmp Minute, 59 jge lab1 mov Minute, 0 inc Hour lab1: inc Minute d. cmp C, “ “ je lab1 cmp C, 9 lab1: move Whitespace, 1 e. mov ax, A cmp ax, C jge lab1 mov cx, C cmp cx, Z jle lab2 lab1: mov UpperCase, 1 lab2: mov UpperCase, 0 f. cmp X, 0 jng lab1 mov SgnX, 1 jmp Done lab1: jnl lab2 mov SgnX, -1 jmp Done lab2: g. mov ax, Miltime cmp ax, 1200 jnl lab1 mov AMPM, 41 cmp ax, 100 jl lab2 mov OrdTime, 1200 lab1: mov AMPM, 50 cmp ax, 1300 lab2: sub OrdTime, 1200 5.1.2 a. cmp A, 14 jge lab 1 cmp B, 17 mov ax, X inc ax lab1: mov C, -5 b. cmp X, 5 jng lab1 cmp Y, 0 jl lab2 lab1: cmp Z, 13 jnle lab3 lab2: mov A, 10 jmp lab 4 lab3: mov A, 2 lab4: 5.1.4 a. cmp A, 14 jge S1 S1: mov X, 21 b. cmp X, ax jle L1 L1: Neg X Inc X L2 c. cmp ax, 0 jng over inc ax jmp through over: dec ax through: Exercise 6.2 Ax = 2222h B = 3333h Ax = 3333h B =2222h 6.2.2 The code will save the value of ax on the stack, then bx on the stack. The pop function removes the last entry of the ax and bx registers. 6.2.3 Sp has to have to correct value, or there is no point in saving and restoring. Exercise 6.4 Push ax push cx push dx cmp ax, 0 jle done mov cx, ax spaceloop: _Putch ‘ ‘ dec cx jnz spaceloop done: pop dx pop cx pop ax ret Exercise 9.1.1 Al = 11010110B Al = 11111110B Al = 10101110B Al = 00101001B Al = 11001001B Al = 08h Al = 0DFh Al = 0D7h Al = 36h 9.1.2 1111110000011111 0000001111100000 1111110000011111 0000001100100000 0001000000000000 0000000000001000