|
|
@@ -10,7 +10,7 @@ section .bss
|
|
|
num resb 4 ;4 byte for ascii numbers
|
|
|
|
|
|
section .data
|
|
|
- ha db 0 ;hundreds
|
|
|
+ ha db 0 ;hundreds
|
|
|
ta db 0 ;tens
|
|
|
|
|
|
section .text
|
|
|
@@ -26,13 +26,18 @@ _start:
|
|
|
|
|
|
|
|
|
; print rows
|
|
|
-
|
|
|
- mov ecx, [sz+0] ;rows in ecx
|
|
|
+
|
|
|
+ mov ecx, 0
|
|
|
+ mov cl, [sz] ;rows in ecx
|
|
|
|
|
|
hundreds:
|
|
|
- cmp ecx, 0x64 ;check if above 100
|
|
|
- jge inchundred ;jump to increment hundreds if needed
|
|
|
+ mov ebx, 100
|
|
|
+ cmp ecx, ebx ;check if above 100
|
|
|
+ js bla
|
|
|
+ jae inchundred ;jump to increment hundreds if needed
|
|
|
|
|
|
+
|
|
|
+bla:
|
|
|
mov eax,[ha] ;hundred count to eax
|
|
|
add eax, '0' ;convert to ascii
|
|
|
mov [num+0], eax ;move to first byte of num string
|
|
|
@@ -50,11 +55,11 @@ tens:
|
|
|
mov [num+2], eax
|
|
|
mov [num+3], byte 0xa ;linebreak
|
|
|
|
|
|
- ;mov eax, SYS_WRITE
|
|
|
- ;mov ebx, STDOUT
|
|
|
- ;mov ecx, num
|
|
|
- ;mov edx, 4
|
|
|
- ;int 0x80
|
|
|
+ mov eax, SYS_WRITE
|
|
|
+ mov ebx, STDOUT
|
|
|
+ mov ecx, num
|
|
|
+ mov edx, 4
|
|
|
+ int 0x80
|
|
|
|
|
|
|
|
|
;print hundreds
|
|
|
@@ -62,11 +67,11 @@ tens:
|
|
|
;add eax, '0'
|
|
|
;mov[ha], eax
|
|
|
|
|
|
- mov eax, SYS_WRITE
|
|
|
- mov ebx, STDOUT
|
|
|
- mov ecx, ha
|
|
|
- mov edx, 1
|
|
|
- int 0x80
|
|
|
+ ;mov eax, SYS_WRITE
|
|
|
+ ;mov ebx, STDOUT
|
|
|
+ ;mov ecx, ha
|
|
|
+ ;mov edx, 1
|
|
|
+ ;int 0x80
|
|
|
|
|
|
; print cols
|
|
|
|