Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- section .rodata
- _A db 'A', 0h
- _SPACE db ' ', 0h
- _LINE db 0Ah, 0h
- section .text
- global _start
- _start:
- pop edx
- pop edx
- pop edx
- call _string_to_number
- inc eax
- push eax
- mov edx, eax
- mov ebx, eax
- xor ecx, ecx
- add ebx, eax
- sub ebx, 2
- dec edx
- inc ecx
- _first_triangle_repeat:
- push edx
- push ecx
- push ebx
- call _repeat_space
- call _repeat_a
- mov eax, _LINE
- call _draw_char
- pop ebx
- pop ecx
- pop edx
- add ecx, 2
- dec ebx
- dec edx
- jnz _first_triangle_repeat
- pop eax
- mov edx, eax
- mov ebx, ecx
- xor ecx, ecx
- dec edx
- sub ebx, 2
- inc ecx
- _second_triangle_repeat:
- push edx
- push ecx
- push ebx
- _second_triangle_repeat_space:
- mov eax, _SPACE
- call _draw_char
- dec edx
- jnz _second_triangle_repeat_space
- push ecx
- call _repeat_a
- call _repeat_space
- pop ecx
- call _repeat_a
- mov eax, _LINE
- call _draw_char
- pop ebx
- pop ecx
- pop edx
- add ecx, 2
- sub ebx, 2
- dec edx
- jnz _second_triangle_repeat
- xor ebx, ebx
- mov eax, 1
- int 80h
- _string_to_number:
- xor eax, eax
- mov bl, byte[edx]
- sub bl, '0'
- cmp ebx, 9
- jbe _repeat_this
- ret
- _times_by_ten:
- imul eax, 10
- _repeat_this:
- add eax, ebx
- inc edx
- mov bl, byte[edx]
- sub ebx, '0'
- cmp ebx, 9
- jbe _times_by_ten
- ret
- _draw_char:
- push edx
- push ecx
- push ebx
- mov ecx, eax
- mov eax, 4
- mov ebx, 1
- mov edx, 1
- int 80h
- pop ebx
- pop ecx
- pop edx
- ret
- _repeat_a:
- mov eax, _A
- call _draw_char
- dec ecx
- jnz _repeat_a
- ret
- _repeat_space:
- mov eax, _SPACE
- call _draw_char
- dec ebx
- jnz _repeat_space
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement