Advertisement
Guest User

triforce.asm

a guest
Jan 29th, 2022
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. section .rodata
  2. _A db 'A', 0h
  3. _SPACE db ' ', 0h
  4. _LINE db 0Ah, 0h
  5. section .text
  6. global _start
  7. _start:
  8. pop edx
  9. pop edx
  10. pop edx
  11. call _string_to_number
  12. inc eax
  13. push eax
  14. mov edx, eax
  15. mov ebx, eax
  16. xor ecx, ecx
  17. add ebx, eax
  18. sub ebx, 2
  19. dec edx
  20. inc ecx
  21. _first_triangle_repeat:
  22. push edx
  23. push ecx
  24. push ebx
  25. call _repeat_space
  26. call _repeat_a
  27. mov eax, _LINE
  28. call _draw_char
  29. pop ebx
  30. pop ecx
  31. pop edx
  32. add ecx, 2
  33. dec ebx
  34. dec edx
  35. jnz _first_triangle_repeat
  36. pop eax
  37. mov edx, eax
  38. mov ebx, ecx
  39. xor ecx, ecx
  40. dec edx
  41. sub ebx, 2
  42. inc ecx
  43. _second_triangle_repeat:
  44. push edx
  45. push ecx
  46. push ebx
  47. _second_triangle_repeat_space:
  48. mov eax, _SPACE
  49. call _draw_char
  50. dec edx
  51. jnz _second_triangle_repeat_space
  52. push ecx
  53. call _repeat_a
  54. call _repeat_space
  55. pop ecx
  56. call _repeat_a
  57. mov eax, _LINE
  58. call _draw_char
  59. pop ebx
  60. pop ecx
  61. pop edx
  62. add ecx, 2
  63. sub ebx, 2
  64. dec edx
  65. jnz _second_triangle_repeat
  66. xor ebx, ebx
  67. mov eax, 1
  68. int 80h
  69. _string_to_number:
  70. xor eax, eax
  71. mov bl, byte[edx]
  72. sub bl, '0'
  73. cmp ebx, 9
  74. jbe _repeat_this
  75. ret
  76. _times_by_ten:
  77. imul eax, 10
  78. _repeat_this:
  79. add eax, ebx
  80. inc edx
  81. mov bl, byte[edx]
  82. sub ebx, '0'
  83. cmp ebx, 9
  84. jbe _times_by_ten
  85. ret
  86. _draw_char:
  87. push edx
  88. push ecx
  89. push ebx
  90. mov ecx, eax
  91. mov eax, 4
  92. mov ebx, 1
  93. mov edx, 1
  94. int 80h
  95. pop ebx
  96. pop ecx
  97. pop edx
  98. ret
  99. _repeat_a:
  100. mov eax, _A
  101. call _draw_char
  102. dec ecx
  103. jnz _repeat_a
  104. ret
  105. _repeat_space:
  106. mov eax, _SPACE
  107. call _draw_char
  108. dec ebx
  109. jnz _repeat_space
  110. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement