ItsMeLucifer

8086-Assembler Sumowanie Liczb

Dec 2nd, 2019
369
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. Progr segment
  2. assume cs:Progr, ds:dane, ss:stosik
  3.  
  4. start: mov ax,dane
  5. mov ds,ax
  6. mov ax,stosik
  7. mov ss,ax
  8. mov sp,offset szczyt
  9.  
  10. lea dx,Tekst1
  11. mov ah,09H
  12. int 21H
  13.  
  14. lea dx,max
  15. mov ah,0Ah
  16. int 21h ;wczytanie łańcucha znaków
  17.  
  18. mov ch,0
  19. mov cl,ile
  20. mov bx,0
  21. mov dx,0
  22. mov ah,0
  23. petla: mov al,tab[bx] ;w pętli sumowane są cyfry
  24. sub al,30H
  25. add dx,ax
  26. inc bx
  27. loop petla
  28.  
  29. mov bx,10
  30. mov cx,0
  31. mov ax,dx
  32. konwersja: mov dx,0 ;konwersja liczby na znaki (tekst)
  33. div bx
  34. add dx,30H
  35. push dx
  36. inc cx
  37. cmp ax,0
  38. jne konwersja
  39.  
  40. mov ah,09H
  41. lea dx,Tekst2
  42. int 21H
  43. wyswietl: pop dx ;wyświetlanie kolejnych znaków (cyfr)
  44. mov ah,02H
  45. int 21H
  46. loop wyswietl
  47.  
  48. mov ah,4ch
  49. mov al,0
  50. int 21h
  51. Progr ends
  52.  
  53. dane segment
  54. Tekst1 db 13,10,'Prosze o podanie cyfr (do 10 cyfr): $'
  55.  
  56. Tekst2 db 10,13,'suma cyfr = $'
  57.  
  58. max db 11
  59. ile db ?
  60. tab db 11 dup(0)
  61.  
  62. dane ends
  63.  
  64. stosik segment stack
  65. dw 100h dup(0)
  66. szczyt Label word
  67. stosik ends
  68.  
  69. end start
Add Comment
Please, Sign In to add comment