Advertisement
Guest User

Fetilei

a guest
Dec 20th, 2018
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. PAGE 70,166
  2. MEM_POS = 0800H ;adresa de inceput a programului in segment
  3. DS_SEG = 0080H  ;segmentul de date
  4. IKEYBOARD = 08H ;intrerupere specifica placii pentru citirea de la tastatura
  5. IDIS_BYTE = 09H ;intrerupere specifica placii pentru afisarea unui octet
  6. IDIS_STR = 0BH  ;intrerupere specifica placii pentru afisarea unui sir de caractere
  7.  
  8. CODE SEGMENT
  9.     ASSUME CS:CODE, DS:CODE
  10.     ORG 0H ;codul incepe de la offsetul 0h in segmentul de cod
  11.    
  12. ;inceputul programului
  13. START:
  14. ;partea de initializare a segmentului de date !!
  15.     MOV AX,DS_SEG
  16.     MOV DS,AX ;se incarca segmentul de date
  17.     ;afisarea unui sir de caractere
  18.     MOV SI,OFFSET MSG
  19.     INT IDIS_STR ;display message MSG
  20.    
  21.     ;calculare cmmdc
  22.     INT IKEYBOARD ; citim primul numar
  23.     MOV CL,0 ; mutam poiteru de pozitie pe afisaj
  24.     MOV A,AL ; il salvam in variabila A
  25.     INT IDIS_BYTE ; il afisam si pe placa
  26.    
  27.     INT IKEYBOARD ; citim al 2-lea numar
  28.     MOV CL,0 ; mutam poiteru de pozitie pe afisaj
  29.     MOV B,AL ; il salvam in variabila B
  30.     INT IDIS_BYTE ; il afisam si pe placa
  31.    
  32.     ; Loop-ul de calculare
  33. TWHILE: CMP A,B ; comparam a si b
  34.     JE FINISH   ; daca sunt egale sare la terminare
  35.     ; daca nu intra si face operatii cu ele
  36.     CMP A,B
  37.     JG AGREATER ; sari la label-ul ala daca A > B ZF = 0 (parca)
  38.     ; Daca nu sare la labelul ala inseamna ca A < B si scade din B pe A
  39.     SUB B,A  ; daca b mai mare ca a scadem pe a din b
  40.     AGREATER:  
  41.         SUB A,B ; DAca a > b scadem pe b din a
  42.     ; reintoarcere in loop
  43.     JMP TWHILE
  44.     ; finish afisam rezultatul
  45.     FINISH:
  46.         MOV CL,,0
  47.         MOV AL,A ; incarcam in al rezultatul
  48.         INT IDIS_BYTE ; afisam rezultatul
  49.  
  50.     MSG DB '                ',00H ;declararea unei variabile sir de caractere
  51.     A DB ?
  52.     B DB ?
  53. CODE ENDS
  54. END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement