Advertisement
Guest User

Untitled

a guest
May 21st, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Potprogram za konverziju u označeni oktalni string
  2. # Imenko Prezimić ra1234
  3.  
  4. # unsigned int inter_to_oct_str(int broj, char* str, unsigned int duzina)
  5. .section .text
  6. .globl inter_to_oct_str
  7. inter_to_oct_str:
  8.     pushl %ebp
  9.     movl %esp, %ebp
  10.     subl $4, %esp
  11.     pushl %ebx
  12.     pushl %esi
  13.     pushl %edi
  14.     movl 8(%ebp), %eax      #broj
  15.     movl 12(%ebp), %edi     #str
  16.     movl $8, %ebx           #baza
  17.     movl $0, -4(%ebp)       #greška
  18.     andl %eax, %eax         #da li je broj negativan?
  19.     jns i2o_cifra
  20.     movb $'-', (%edi)       #ako jeste, ubaci minus
  21.     incl %edi
  22.     incl 12(%ebp)           #pomeri pokazivač, da se ne bi obrtao minus
  23.     decl 16(%ebp)           #smanji broj slobodnih mesta
  24.     negl %eax               #komplement 2
  25. i2o_cifra:
  26.     decl 16(%ebp)           #provera preostalog mesta
  27.     cmpl $1, 16(%ebp)       #neophodan je i 1 bajt za NULL
  28.     jl i2o_greska
  29.     xorl %edx, %edx
  30.     divl %ebx
  31.     addb $'0', %dl
  32.     movb %dl, (%edi)
  33.     incl %edi
  34.     andl %eax, %eax
  35.     jnz i2o_cifra
  36.     movb $0, (%edi)
  37.     decl %edi
  38.     movl 12(%ebp), %esi
  39. i2o_obrni:
  40.     cmpl %edi, %esi
  41.     jae i2o_kraj
  42.     movb (%esi), %ah
  43.     movb (%edi), %al
  44.     movb %al, (%esi)
  45.     movb %ah, (%edi)
  46.     decl %edi
  47.     incl %esi
  48.     jmp i2o_obrni
  49. i2o_greska:
  50.     incl -4(%ebp)
  51. i2o_kraj:
  52.     movl -4(%ebp), %eax
  53.     popl %edi
  54.     popl %esi
  55.     popl %ebx
  56.     movl %ebp, %esp
  57.     popl %ebp
  58.     ret
  59.  
  60. #Izbacivanjem linija 18-24 se dobija neoznačena varijanta potprograma.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement