Skip to content

Commit f5e6c8d

Browse files
committed
Update
1 parent 22525f9 commit f5e6c8d

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

089.asm

+5-5
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ segment readable writable
1111
result: times 10 db 0 ;empty string for printing the result later
1212
db 10, 0
1313
buf: rb 10000 ;buffer
14-
nums: rd 1000 ;array for the numbers in int form
1514
curr: rb 16 ;buffer for current number
1615

1716
segment readable executable
@@ -35,7 +34,7 @@ start:
3534
xor ecx, ecx ;saved chars (result)
3635
mov r8d, 10 ;for /mod 10
3736
mov r10d, 1000 ;for /mod 1000
38-
xor r9d, r9d ;index in nums
37+
xor r9d, r9d ;index for nums
3938

4039
readnext:
4140
cmp r9d, 1000 ;1000 numbers done?
@@ -44,6 +43,7 @@ readnext:
4443
mov [curr], rax
4544
mov [curr + 8], rax
4645
xor esi, esi ;reset index for curr
46+
xor r11d, r11d
4747

4848
readloop:
4949
mov al, [buf + edi] ;get char
@@ -62,18 +62,18 @@ getnum:
6262
mov eax, [val + 4 * eax] ;convert to int value
6363
cmp eax, ebx ;is value < last value
6464
jl subtract ;if yes, subtract it
65-
add [nums + 4 * r9d], eax ;else add it
65+
add r11d, eax ;else add it
6666
jmp nextval
6767

6868
subtract:
69-
sub [nums + 4 * r9d], eax
69+
sub r11d, eax
7070

7171
nextval:
7272
mov ebx, eax ;update last value
7373
xor eax, eax ;clear eax
7474
test esi, esi ;repeat if index > 0
7575
jnz getnum
76-
mov eax, [nums + 4 * r9d] ;current number in eax
76+
mov eax, r11d ;current number in eax
7777
xor ebx, ebx ;for opt length
7878
xor edx, edx ;get 1000s
7979
div r10d

0 commit comments

Comments
 (0)