daily pastebin goal
0%
SHARE
TWEET

Untitled

a guest Aug 13th, 2017 44 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //GETINT
  2. getint:
  3.     .data
  4. tmpBuf: .skip   64
  5. found:  .long   0
  6.     .text
  7.            
  8.     enter   $8, $0
  9.     cmp $0, inpos   #jämför inpos med 63(max)
  10.     jb  doInImg     #hoppa om till doInImg inpos >= 63
  11.     jmp findInt     #annars börja hämta ints 
  12. doInImg:
  13.     call    inimage     #gör inimage
  14. findInt:
  15.     subl    %eax, %eax  #resetta eax       
  16.     mov inbuf, %bl
  17. blank:  cmp $32, %bl    #kollar om tecknet är blankt  
  18.     je  nextChar    #hoppar till framflytt av pekare
  19. checkChar:
  20.     add $1, found   #om blanka slut found > 0
  21.     cmp $0, inpos   #jämför inpos med 0 (slut)
  22.     jbe done        #hoppa till done när slut på buffert
  23.     cmp $43, %bl    #43 == +
  24.     je  storeInt    #lägger in + i tmpBuff
  25.     cmp $45, %bl    #45 == -
  26.     je  storeInt    #lägger in - i tmpBuff
  27.     cmp $48, %bl    #48 == 0
  28.     jae checkBig    #om större än 0, kolla om den är mindre än 9
  29.     cmp $2, found   #om man kommer hir är det inte +/- eller 0-9
  30.     jae done        #om man hittat mer än ett tecken gå till done, annars error
  31.     jmp error       #om felaktigt tecken och den har hittat mindre än 1 tecken innan, hoppa till error
  32. //0 = 48, 9 = 57
  33. nextChar:
  34.     //här har ja problem
  35.     //första tecknet blir rätt.
  36.     //har ingen aning om hur jag ska flytta mig till nästa
  37.     sub $1, inpos   #flytta pekare 1
  38.     sub $4, inbuf   #subbar inbuf för att få nästa tecken
  39.     //funkar inte, hitta lösning  
  40.     cmp $0, found   #om found == 0 har det bara varit blanka, leta efter fler
  41.     je  blank       #hoppa till att leta efter blanka
  42.     jmp checkChar   #annars kontrollera nästa tecken
  43. checkBig:
  44.     cmp $57, %bl    #57 = 9
  45.     jbe storeInt    #om 9 eller mindre spara talet
  46.     jmp error       #annars error
  47. storeInt:
  48.     imul    $10, %eax   #multiplicera med 10, detta för att få 1'tal 10'tal osv osv
  49.     cmp $48, %bl    #om 0 addera inget och hoppa till nextChar
  50.     je  nextChar    #hoppa till nextChar
  51.     cmp $49, %bl    #om 1 hoppa till add1
  52.     je  add1        #hoppa till add1
  53.     cmp $50, %bl
  54.     je  add2
  55.     cmp $51, %bl
  56.     je  add3
  57.     cmp $52, %bl
  58.     je  add4
  59.     cmp $53, %bl
  60.     je  add5
  61.     cmp $54, %bl
  62.     je  add6
  63.     cmp $55, %bl
  64.     je  add7
  65.     cmp $56, %bl
  66.     je  add8
  67.     cmp $57, %bl
  68.     je  add9        #slut på addera
  69.  
  70. error:  pushl   $err   
  71.     call    puts
  72. done:   movl    found, %ebx #flyttar värdet i found till ebx
  73.     subl    %ebx,found  #värdet av ebx minus värdet av found till found (found blir 0)       
  74.     leave
  75.     ret
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top