talk

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

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