Advertisement
Guest User

Untitled

a guest
Nov 7th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model small
  2. .stack 100h
  3.    
  4. .data
  5.     request db 'Programa kuri patikrina kurie skaiciai/simboliai sutampa su paskutiniu', 0Dh, 0Ah, 'Iveskite simboliu eilute:', 0Dh, 0Ah, '$'
  6.     result  db 0Dh, 0Ah, 'Result:', 0Dh, 0Ah, '$'
  7.     buffer  db 255, ?, 255 dup (0)     ;Eilute issaugai cia
  8.     enteris db 0Dh, 0Ah,'$'
  9.    
  10. .code
  11.  
  12. proc spausdinkCL near
  13.     push dx
  14.     push ax
  15.    
  16.     mov dl, cl
  17.     mov ah, 02h
  18.     int 21h
  19.    
  20.     pop ax
  21.     pop dx
  22.     ret
  23. endp
  24.  
  25. start:
  26.     mov ax, @data                  
  27.     mov ds, ax                      
  28.                    ;spausdinam Pasisveikinimo Žinute
  29.     mov ah, 9d
  30.     mov dx, offset request
  31.     int 21h  
  32.                    ;vykdom nuskaityma (int 21h, AH 0Ah)
  33.     mov ah, 0Ah
  34.     mov dx, offset buffer
  35.     int 21h
  36.  
  37.     ;pereinam i kita eilute spausdindami enteris simboliu seka
  38.     mov ah, 9
  39.     mov dx, offset enteris
  40.     int 21h
  41.  
  42.     mov ax, 0            ; nusinuliname ax registra, jis bus naudojamas laikyti einamaji skaiciu
  43.     mov bx, 0
  44.     mov bl, byte ptr [buffer+1]      ; isidedam, kiek simboliu nuskaityta, nuskaite ir 0Dh, tai vienu pamazinam
  45.     mov dl, byte ptr [buffer+1+bx]   ; +2 nes pirmi du baitai nera musu ivesti simboliai
  46.    ; al laikys einamaji simboli,
  47.    ; bx kiek is viso simboliu suvesta,
  48.    ; dl paskutini simboli
  49.     mov si, 0
  50.    
  51.     loopPradzia:
  52.     inc si
  53.     cmp dl, byte ptr[buffer+si+1]  ; +1 nes si startavom vienu mazesniu
  54.     jne loopPabaiga
  55.    
  56.     ; dl == buffer+si
  57.    ; reiskia reikia spausdint si
  58.     mov cx, si
  59.     add cl, '0'
  60.     call spausdinkCL
  61.     mov cl, ' '
  62.     call spausdinkCL
  63.    
  64.     loopPabaiga:
  65.     cmp bx,si
  66.     jne loopPradzia
  67.    
  68.     mov ah, 4ch
  69.     int 21h
  70. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement