Advertisement
pan7nikt

arch_1_6e_me

Mar 24th, 2024
716
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;=======================================================================================;
  2. ;                                                                                       ;
  3. ; Plik           : arch1-6e.asm                                                         ;
  4. ; Format         : EXE                                                                  ;
  5. ; Cwiczenie      : Kompilacja, konsolidacja i debugowanie program�w                     ;
  6. ;                  asemblerowych                                                        ;
  7. ; Autorzy        : Julia Marcinkowska, Aleksandra Wnuk, grupa 3, poniedzia�ek, 14:15    ;
  8. ; Data zaliczenia: 19.03.2018                                                           ;
  9. ; Uwagi          : Program obliczajacy wzor: d/(b-c)*(a+b)                              ;
  10. ;                                                                                       ;
  11. ;=======================================================================================;
  12.  
  13.                 .MODEL  SMALL                           ;dwa segmenty (jeden na CS, jeden na DS+SS)
  14.  
  15. Dane            SEGMENT                                 ;poczatek segmentu danych
  16.  
  17. a               DB      20
  18. b               DB      10
  19. c               DB      3
  20. d               DB      3
  21. Wynik           DB      ?                               ;zmienna wynik
  22. Reszta          DB      ?                               ;zmienna reszta
  23.  
  24. Dane            ENDS                                    ;koniec segmentu danych
  25.  
  26. Kod             SEGMENT                                 ;poczatek segmentu kodu
  27.  
  28.                 ASSUME   CS:Kod, DS:Dane, SS:Stosik     ;informuje kompilator, z kt�rego rejestru segmentowego ma korzystac przy odwolaniach do etykiety
  29.  
  30. Start:
  31.                 mov     ax, Dane                        ;przeniesienie danych do rejestru og�lnego
  32.                 mov     ds, ax                          ;przeniesienie danych z rejestru og�lnego do segmentowego
  33.  
  34.                 mov     AL, a                           ;przeniesienie danych a do rejestru al
  35.                 add     AL, b                           ;dodanie b do rejestru al
  36.                 mul     d                               ;mnozenie rejestru al razy d
  37.                 mov     BL, b                           ;przeniesienie danych do rejestru bl
  38.                 sub     BL, c                           ;odjecie danej c od rejestru bl
  39.                 div     BL                              ;podzielenie rejestru al przez rejestr bl
  40.                 mov     Wynik, AL                       ;przeniesienie rejestru al do zmiennej wynik
  41.                 mov     Reszta, AH
  42.  
  43.                 mov     ax, 4C00h                       ;funkcja zakanczajaca program
  44.                 int     21h                             ;wywolanie funkcji
  45.  
  46. Kod             ENDS                                    ;koniec segmentu kodu
  47.  
  48. Stosik          SEGMENT STACK                           ;poczatek segmentu stosu
  49.  
  50.                 DB      100h DUP (?)                    ;alokacja pamieci na stos o 100 miejscach o nieokreslonej wielkosci
  51.  
  52. Stosik          ENDS                                    ;koniec segmentu stosu
  53.  
  54.                 END    Start
  55.  
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement