27 (803B)
1 2 3 Top level overview 4 --------------- 5 6 putline 7 8 Equivilent C function: void putline(char *map, int off); 9 10 Use: Draws one line of the map, at the postion "off" 11 12 How: For loop 13 14 Code: 15 16 17 putline: 18 save 19 20 mov %rsi, %r14 /* off arg */ 21 mov %rdi, %r15 /* map arg */ 22 23 mov %r14, %r13 24 add %r14, %r15 25 .loop1: 26 mov $999, %r11 /* condition 1 */ 27 cmp %r13, %r11 28 jl .eloop1 29 30 mov %r13, %r12 /* condition 2 */ 31 sub %r14, %r12 32 mov $20, %r11 33 cmp %r12, %r11 34 jl .eloop1 35 36 mov $1, %rax /* putc(map[i]); */ 37 mov $1, %rdi 38 mov %r15, %rsi 39 inc %r15 40 mov $1, %rdx 41 syscall 42 43 inc %r13 /* i++ */ 44 jmp .loop1 45 .eloop1: 46 47 mov $1, %rax 48 mov $1, %rdi 49 mov $nl, %rsi 50 mov $2, %rdx 51 syscall 52 53 restore 54 ret