global _start
section .bss
address: RESB 4
section .data
var db 1
section .text
; Input
; eax = number to display
section .data
const10: dd 10
section .text
printCharacter:
; pushad
mov ecx, eax
mov edx, 1 ; Length of sum message
mov ebx, 1 ; File descriptor (stdout)
mov eax, 4 ; System call number (write)
int 0x80
; popad
ret
printNumber:
push eax
push edx
xor edx,edx ;edx:eax = number
div dword [const10] ;eax = quotient, edx = remainder
test eax,eax ;Is quotient zero?
je .l1 ; yes, don't display it
call printNumber ;Display the quotient
.l1:
lea eax,[edx+'0']
call printCharacter ;Display the remainder
pop edx
pop eax
ret
_start:
; your code goes here
mov eax, var
mov [address], eax
mov edx, 0
call printNumber
mov eax,65
call printCharacter
mov eax,65
call printCharacter
mov eax,65
call printCharacter
mov eax,13
call printCharacter
mov eax,10
call printCharacter
je exit
exit:
mov eax, 01h ; exit()
xor ebx, ebx ; errno
int 80h
Z2xvYmFsIF9zdGFydAoKc2VjdGlvbiAuYnNzCmFkZHJlc3M6IFJFU0IgNAoKc2VjdGlvbiAuZGF0YQp2YXIgZGIgMQoKCnNlY3Rpb24gLnRleHQKCjsgSW5wdXQKOyBlYXggPSBudW1iZXIgdG8gZGlzcGxheQoKICAgIHNlY3Rpb24gLmRhdGEKY29uc3QxMDogICAgZGQgMTAKICAgIHNlY3Rpb24gLnRleHQKCnByaW50Q2hhcmFjdGVyOgo7ICAgIHB1c2hhZAogICAgbW92IGVjeCwgZWF4CiAgICBtb3YgZWR4LCAxIDsgTGVuZ3RoIG9mIHN1bSBtZXNzYWdlCiAgICBtb3YgZWJ4LCAxIDsgRmlsZSBkZXNjcmlwdG9yIChzdGRvdXQpCiAgICBtb3YgZWF4LCA0IDsgU3lzdGVtIGNhbGwgbnVtYmVyICh3cml0ZSkKICAgIGludCAweDgwCjsgICAgcG9wYWQKICAgIHJldAoKcHJpbnROdW1iZXI6CiAgICBwdXNoIGVheAogICAgcHVzaCBlZHgKICAgIHhvciBlZHgsZWR4ICAgICAgICAgIDtlZHg6ZWF4ID0gbnVtYmVyCiAgICBkaXYgZHdvcmQgW2NvbnN0MTBdICA7ZWF4ID0gcXVvdGllbnQsIGVkeCA9IHJlbWFpbmRlcgogICAgdGVzdCBlYXgsZWF4ICAgICAgICAgO0lzIHF1b3RpZW50IHplcm8/CiAgICBqZSAubDEgICAgICAgICAgICAgICA7IHllcywgZG9uJ3QgZGlzcGxheSBpdAogICAgY2FsbCBwcmludE51bWJlciAgICAgO0Rpc3BsYXkgdGhlIHF1b3RpZW50Ci5sMToKICAgIGxlYSBlYXgsW2VkeCsnMCddCiAgICBjYWxsIHByaW50Q2hhcmFjdGVyICA7RGlzcGxheSB0aGUgcmVtYWluZGVyCiAgICBwb3AgZWR4CiAgICBwb3AgZWF4CiAgICByZXQKICAgIApfc3RhcnQ6Cgk7IHlvdXIgY29kZSBnb2VzIGhlcmUKCW1vdiBlYXgsIHZhcgoJbW92IFthZGRyZXNzXSwgZWF4Cgltb3YgZWR4LCAwCgljYWxsIHByaW50TnVtYmVyCgltb3YgZWF4LDY1CgljYWxsIHByaW50Q2hhcmFjdGVyCgltb3YgZWF4LDY1CgljYWxsIHByaW50Q2hhcmFjdGVyCgltb3YgZWF4LDY1CgljYWxsIHByaW50Q2hhcmFjdGVyCgltb3YgZWF4LDEzCgljYWxsIHByaW50Q2hhcmFjdGVyCgltb3YgZWF4LDEwCgljYWxsIHByaW50Q2hhcmFjdGVyCglqZQkJZXhpdAoKZXhpdDoKCW1vdgkJZWF4LCAwMWgJCTsgZXhpdCgpCgl4b3IJCWVieCwgZWJ4CQk7IGVycm5vCglpbnQJCTgwaAo=