Guest User

Untitled

a guest
Jun 7th, 2018
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model small
  2. .stack 50h
  3. date    segment word    public  'data'
  4. sir dw  7ABCh, 9865h, 0FDCEh, 1234h
  5. sir2    dw      7 dup ( ?)
  6. pozitia dw      4
  7. aux     dw    ?
  8. lungs   equ $-sir   dw  2 dup (?)   ; spatiu pentru adaugare
  9. cuv dw  0F0Fh       ; cuvantul de adaugat la sfarsitul sirului
  10. date    ends
  11. prog    segment word    public  'code'
  12.     assume  cs: prog, ds: date
  13. start:
  14. mov ax,date
  15. mov ds,ax
  16. mov es,ax
  17. push ax
  18. lea si,sir
  19. mov bx,cuv
  20. push si
  21. push bx
  22. call insert
  23. mov ax,4C00h
  24. int 21h
  25.  
  26.  
  27. insert proc
  28. push bp
  29. mov bp,sp
  30. mov bx,[bp+4]
  31. mov si,[bp+6]
  32. push cx         ; salvez cx    
  33. mov cx,lungs   
  34.  
  35. push di         ;salvez di
  36. lea di,sir2
  37. mov aux,cx              ; salvez in aux contorul initial
  38. mov cx,pozitia          ; fac contorul cat pozitia la care vreau sa inserez
  39. rep movs sir2,sir1      ; copiez sirul1 in sirul2 pana la pozitia pe care vreau sa inserez
  40. inc di                  ;incrementez offsetul cu 2= dimensiunea unui dw
  41. inc di
  42. mov sir2,cuv            ;pun elementul in sir
  43. add si,pozitia          ;deplasez offsetul sirului1 cu pozitia ( Nu sunt sigur ca mai e necesar)
  44. mov cx,aux              ;refac contorul initial
  45. sub cx,pozitia          ;scad din el cat am copiat pana acum
  46. add cx,2                ;adun 2 pentru elementul pe care l-am inserat
  47. rep movs sir2,sir1      ;copiez restul
  48. stos sir2          
  49. push dx
  50. lea dx,sir1
  51. int21h                  ;afisez
  52. pop dx
  53. pop di
  54. pop cx 
  55.                         ;descarc registri si ies
  56. ret 6
  57. insert endp
  58. end start
Add Comment
Please, Sign In to add comment