diff options
| author | Christian Krinitsin <code@krinitsin.xyz> | 2024-11-20 20:39:32 +0100 |
|---|---|---|
| committer | Christian Krinitsin <code@krinitsin.xyz> | 2024-11-20 20:39:32 +0100 |
| commit | 1dc5b526c19f179f6e78db6bfe8d3cc50881b978 (patch) | |
| tree | b0c25a96aba3583befa3444bed0100c0e8a7d209 /border.asm | |
| parent | 4646adf613615a4a24d1683306f3e13f0c628a6a (diff) | |
| download | x86_64-Snake-1dc5b526c19f179f6e78db6bfe8d3cc50881b978.tar.gz x86_64-Snake-1dc5b526c19f179f6e78db6bfe8d3cc50881b978.zip | |
split into multiple files, .o files in build/
Diffstat (limited to 'border.asm')
| -rw-r--r-- | border.asm | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/border.asm b/border.asm new file mode 100644 index 0000000..12774b6 --- /dev/null +++ b/border.asm @@ -0,0 +1,64 @@ +section .text + extern height + extern width + extern write_byte + global draw_border + +draw_upper_lower_line: + push rbx + + mov rax, '+' + call write_byte + + mov bl, byte [width] +_01:mov rax, '-' + call write_byte + dec bl + cmp bl, 0 + jnz _01 + + mov rax, '+' + call write_byte + + mov rax, 10 ;newline + call write_byte + + pop rbx + ret + +draw_left_right_lines: + push rbx + + mov rax, '|' + call write_byte + + mov bl, byte [width] +_02:mov rax, 32 ;space + call write_byte + dec bl + cmp bl, 0 + jnz _02 + + mov rax, '|' + call write_byte + + mov rax, 10 ;newline + call write_byte + + pop rbx + ret + +draw_border: + push rbx + + call draw_upper_lower_line + mov bl, byte [height] +_03:call draw_left_right_lines + dec bl + cmp bl, 0 + jnz _03 + + call draw_upper_lower_line + + pop rbx + ret |
