Advertisement
warrior98

Untitled

Nov 27th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;Se da un sir de octeti.
  2. ;Sa se copieze din acest sir intr-un altul toate elementele
  3. ;pana la intalnirea primului caracter '0' (sau toate), dupa care,
  4. ;in locurile ramase libere pana la lungimea initiala,
  5. ;sa se completeze cu 'Z'.
  6.  
  7. assume ds:data,cs:code
  8. data segment
  9.     s1 db 'abc0def'    ;sirul initial
  10.     d equ $-s1        ;dim. sir initial
  11.     s2 db d dup(?)    ;sir rezultat
  12. data ends
  13. code segment
  14. start:
  15.     mov ax,data
  16.     mov ds,ax
  17.     mov es,ax
  18.     mov si,offset s1
  19.     mov di,offset s2
  20.     cld        ;parcurgere de la adr. mai mica la adr. mai mare
  21.     mov cx,d
  22. again:
  23.     lodsb
  24.     cmp al,'0'
  25.     je dupa
  26.     stosb        ;daca nu e '0', se incarca in s2
  27. loop again
  28. dupa:
  29.     mov cx,offset s1
  30.     add cx,d
  31.     sub cx,si
  32.     add cx,1    ;...pt. restul pozitiilor
  33.     ;puteti sa gasiti o varianta mai rapida
  34.     mov al,'Z'
  35.     jcxz sf
  36. rep stosb
  37. sf:
  38.     mov ax,4C00h
  39.     int 21h
  40. code ends
  41. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement