Advertisement
Guest User

Untitled

a guest
May 29th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. TITLE quattro_operazioni
  2.  
  3. .MODEL MEDIUM
  4.  
  5.  
  6. .STACK 100h
  7.  
  8. .DATA
  9.  
  10. my1Var  BYTE    ?   ; Dichiarazione, come scrivere "char a;" Char = 8 bit
  11. my2Var  BYTE    ?
  12. somma   DB      ?   ; Double byte = 8 bit x 2 = 16 bit = 2 byte
  13. dif     DB      ?
  14. pro     DB      ?
  15. quo     DB      ?
  16.  
  17. .CODE
  18.  
  19. MOV AL,0h
  20. MOV AH,01h ; Servizio di DOS per input
  21. INT 21h
  22. MOV my1Var,AX ; Assegno alla variabile di 8 bit il contenuto del registro AX
  23. ; Puo' sembrare sbagliato ma il registro AX ha solo 8 bit su 16 occupati
  24.  
  25. MOV AL,0h
  26. MOV AH,01h
  27. INT 21h
  28. MOV my2Var,AX
  29. ; Adesso hai le due variabili con le robe dentro
  30. ADD my1Var,my2Var
  31. MOV somma,my1Var
  32. SUB my1Var,my2Var
  33. MOV dif,my1Var
  34. MOV AH,0h
  35. MOV AL,my2Var
  36. MUL my1Var ; Dato che la dimensione dell'operano e' 8 bit lo moltiplica per la parte alta (AL)
  37. ; Se fosse stato 16 bit lo avrebbe moltiplicato per tutto AX, e verrebbe messo nella coppia DX:AX
  38. ; Il prodtto nostro invece sta in AX ora, quindi...
  39. MOV pro,AX
  40. DIV my2Var ; La dimensione dell'operando e' 8 bit quindi divide quello che sta in AX per my2Var
  41. ; Il quoziente finisce nella parte alta AL e il resto nella parte bassa AH
  42. ; Se era 16 bit avrebbe diviso (32 bit) DX:AX per l'operando che hai messo te, mettendo il quoziente in AX (16 bit) e il resto in DX (16 bit)
  43. MOV quo,AL
  44.  
  45. ; Se vuoi stamparli chiami il servizio di DOS 09h
  46.  
  47. MOV AL,0h
  48. MOV AH,09h
  49. LEA DX,somma
  50. INT 21h
  51.  
  52. MOV AL,0h
  53. MOV AH,09h
  54. LEA DX,dif
  55. INT 21h
  56.  
  57. MOV AL,0h
  58. MOV AH,09h
  59. LEA DX,pro
  60. INT 21h
  61.  
  62. MOV AL,0h
  63. MOV AH,09h
  64. LEA DX,quo
  65. INT 21h
  66.  
  67. MOV AH,4Ch
  68. INT 21h
  69.  
  70. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement