Advertisement
GraionDilach

Balázs assembly 8

Oct 18th, 2011
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ADAT    SEGMENT
  2. SOR DB  80 DUP(0)
  3. UZE1    DB  "KEREM A SORT: ", 13, 10, "$"
  4. UZE2    DB  13, 10, "A SOR VISSZAFELE: $"
  5. UZE3    DB  13, 10, "SZAMJEGYEK SZAMA: $"
  6. ADAT    ENDS
  7.  
  8. PROG    SEGMENT
  9.         ASSUME CS:PROG, DS:ADAT
  10. START:      MOV AX, ADAT
  11.         MOV DS, AX
  12.         MOV CX, 80
  13.         MOV SI, 0
  14.         MOV BX, 0
  15.         MOV AH, 9
  16.         LEA DX, UZE1
  17.         INT 21H
  18.         MOV AH, 1
  19. CIKL:       INT 21H
  20.         CMP AL, 13  ; ENTER
  21.         JZ  CIKLVEG ; S akkor ki a ciklusból
  22.         CMP AL, '/'     ; ASCII
  23.         JC  NEMSZAM
  24.         CMP AL, ':' ; ASCII
  25.         JNC NEMSZAM
  26.         INC BX      ; Ciklus után BX tartalmazni fogja a számjegyek számát
  27. NEMSZAM:    MOV SOR[SI], AL
  28.         INC SI
  29.         LOOP CIKL
  30. CIKLVEG:    MOV CX, SI  ; SI lesz a karakterek száma +1
  31.         DEC SI      ; ezért eggyel csökkentjük, hogy újra az utolsó karakterre mutasson
  32.         MOV AH, 9
  33.         LEA DX, UZE2
  34.         INT 21H
  35.         MOV AH, 2
  36. CIKL2:      MOV DL, SOR[SI] ; és akkor ki
  37.         INT 21H
  38.         DEC SI
  39.         LOOP CIKL2
  40.         MOV AH, 9
  41.         LEA DX, UZE3
  42.         INT 21H
  43.         MOV AX, BX  ; Csak AX-ben tudok osztani, azt meg kell...
  44.         MOV BL, 10  ; mert tízes számrendszert használunk, és lehet tíznél több szám
  45.         DIV BL
  46.         MOV BX, AX  ; át BX-be, hogy AX-xel játsszhasuk az INTet
  47.         MOV AH, 2
  48.         CMP BL, 0
  49.         JZ TIZK     ; Tíznél kisebb (tízzel osztva 0 volt az eredmény)
  50.         MOV DL, BL  ; Ha nem, hát ki
  51.         ADD DL, '0'
  52.         INT 21H
  53. TIZK:       MOV DL, BH  ;S akkor az egyeseket is ki (maradék)
  54.         ADD DL, '0'
  55.         INT 21H
  56.         MOV AH, 4CH
  57.         INT 21H
  58. PROG        ENDS
  59. END     START
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement