Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ADAT SEGMENT
- SOR DB 80 DUP(0)
- UZE1 DB "KEREM A SORT: ", 13, 10, "$"
- UZE2 DB 13, 10, "A SOR VISSZAFELE: $"
- UZE3 DB 13, 10, "SZAMJEGYEK SZAMA: $"
- ADAT ENDS
- PROG SEGMENT
- ASSUME CS:PROG, DS:ADAT
- START: MOV AX, ADAT
- MOV DS, AX
- MOV CX, 80
- MOV SI, 0
- MOV BX, 0
- MOV AH, 9
- LEA DX, UZE1
- INT 21H
- MOV AH, 1
- CIKL: INT 21H
- CMP AL, 13 ; ENTER
- JZ CIKLVEG ; S akkor ki a ciklusból
- CMP AL, '/' ; ASCII
- JC NEMSZAM
- CMP AL, ':' ; ASCII
- JNC NEMSZAM
- INC BX ; Ciklus után BX tartalmazni fogja a számjegyek számát
- NEMSZAM: MOV SOR[SI], AL
- INC SI
- LOOP CIKL
- CIKLVEG: MOV CX, SI ; SI lesz a karakterek száma +1
- DEC SI ; ezért eggyel csökkentjük, hogy újra az utolsó karakterre mutasson
- MOV AH, 9
- LEA DX, UZE2
- INT 21H
- MOV AH, 2
- CIKL2: MOV DL, SOR[SI] ; és akkor ki
- INT 21H
- DEC SI
- LOOP CIKL2
- MOV AH, 9
- LEA DX, UZE3
- INT 21H
- MOV AX, BX ; Csak AX-ben tudok osztani, azt meg kell...
- MOV BL, 10 ; mert tízes számrendszert használunk, és lehet tíznél több szám
- DIV BL
- MOV BX, AX ; át BX-be, hogy AX-xel játsszhasuk az INTet
- MOV AH, 2
- CMP BL, 0
- JZ TIZK ; Tíznél kisebb (tízzel osztva 0 volt az eredmény)
- MOV DL, BL ; Ha nem, hát ki
- ADD DL, '0'
- INT 21H
- TIZK: MOV DL, BH ;S akkor az egyeseket is ki (maradék)
- ADD DL, '0'
- INT 21H
- MOV AH, 4CH
- INT 21H
- PROG ENDS
- END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement