Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- STDIN = 0
- STDOUT = 1
- SYSREAD = 3
- SYSWRITE = 4
- SYSEXIT = 1
- BUFLEN = 255
- EXIT_SUCCESS = 0
- SYSCALL32 = 0x80
- .align 32
- .data
- BUF: .space BUFLEN, 0
- .text
- .globl _start
- _start:
- read:
- movl $SYSREAD, %eax # wczytuje dane
- movl $STDIN, %ebx
- movl $BUF, %ecx
- movl $BUFLEN, %edx
- int $SYSCALL32
- cmp $0, %eax # zakoncz jesli wczytano 0 bajt
- je exit
- movb $0, %ah # zerowanie dzielnej
- movl $0, %edi # to bedzie iterator po bajtach liczby
- divide:
- movb BUF(,%edi,1), %al
- movb $10, %bl
- divb %bl
- movb %al,BUF(,%edi,1) # wynik pojedynczego dzielenia do bufora
- incl %edi
- cmpl $255, %edi # wykonuje dzielenie po 1 bajcie az do calosci (255)
- jl divide
- write:
- movl $SYSWRITE, %eax
- movl $STDOUT, %ebx
- movl $BUF, %ecx
- movl $BUFLEN, %edx
- int $SYSCALL32
- exit:
- movl $SYSEXIT, %eax
- movl $EXIT_SUCCESS, %ebx
- int $SYSCALL32
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement