Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- STDIN = 0
- STDOUT = 1
- SYS_EXIT = 1
- SYS_WRITE = 4
- SYS_READ = 3
- EXIT_SUCCESS = 0
- .data
- text: .space 10,0
- text_len: .long .-text
- .text
- .global _start
- _start:
- movl $SYS_READ, %eax
- movl $STDIN, %ebx
- movl $text, %ecx
- movl text_len, %edx
- int $0x80
- movl $0, %edi # iterator
- movq %rax, %r8 # ilosc znakow z stdin
- ###### movq $0, %rax
- dec %r8
- main_loop:
- movl $0, %ebx # zerowanie tmp
- movb text(, %edi, 1), %bl #znak z bufora do tmp
- subb $0x30, %bl #ASCII -> hex (dla 0-9)
- cmp $9, %ebx # jesli dalej > 9 (czyli znaki A-Z)
- jl next
- subb $0x07, %bl
- next:
- addq %rbx, %r9 # r9 - "akumulator"
- shlq $4, %r9
- inc %edi #nastepna pozycja
- cmp %r8d, %edi
- jl main_loop
- end:
- shrq $4, %r9
- mov $SYS_EXIT, %eax
- mov $EXIT_SUCCESS, %ebx
- int $0x80
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement