Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Quadrato di N - quadrato_N.asm

quadrato_N.asm

Caricato da: Totipianurese
Scarica il programma completo

  1. TITLE   Modello di codice 8086 (per file EXE)
  2.  
  3. ;       AUTORE          emu8086
  4. ;       DATA            ?
  5. ;       VERSIONE        1.00
  6. ;       FILE            ?.ASM
  7.  
  8. ; 8086 Modello per il codice
  9.  
  10. ; Direttiva per creare un file EXE:
  11.        #MAKE_EXE#
  12.        
  13. ACQUIS    MACRO
  14.           MOV  AH, 01h
  15.           INT  21h
  16.           AND  AL, 0Fh
  17.           ENDM      
  18.  
  19. DSEG    SEGMENT 'DATA'
  20.  
  21. RIS    DB   ?
  22. RES    DB   ?
  23. MSG    DB 'CALCOLO QUADRATO DI N $'
  24. MSG1   DB ,0AH, 0DH,'INSERISCI NUMERO = $'
  25. MSG2   DB ,0AH, 0DH,'IL QUADRATO E $'
  26.  
  27.  
  28. DSEG    ENDS
  29.  
  30. SSEG    SEGMENT STACK   'STACK'
  31.         DW      100h    DUP(?)
  32. SSEG    ENDS
  33.  
  34. CSEG    SEGMENT 'CODE'
  35.  
  36. ;*******************************************
  37.  
  38. START   PROC    FAR
  39.  
  40. ; Salva l'indirizzo per tornare al Sistema Operativo (OS):
  41.     PUSH    DS
  42.     MOV     AX, 0
  43.     PUSH    AX
  44.  
  45. ; inizializza i registri di segmento
  46.     MOV     AX, DSEG
  47.     MOV     DS, AX
  48.     MOV     ES, AX
  49.  
  50.  
  51. ; TODO: aggiungere qui il codice dell'applicazione!!!!
  52.          LEA    DX, MSG              ;
  53.          MOV    AH, 9                ;SINTASSI PER FAR APPARIRE MSG
  54.          INT    21h
  55.          LEA    DX, MSG1             ;
  56.          INT    21h                  ;
  57.          ACQUIS                      ;CHIAMATA A MACRO
  58.          MOV    CL, 0b
  59.          MOV    DX, 1b
  60.          MOV    BL, 0b
  61.  
  62. LABEL1:  ADD    BX, DX               ;RISULTATO IN BX
  63.  
  64.          ADD    DL, 2h
  65.          INC    CL
  66.          CMP    CL, AL
  67.          JE     LABEL2  
  68.          JMP    LABEL1
  69.          
  70. LABEL2:  MOV    AX, BX               ;RISULTATO IN AX
  71.          MOV    BL, 10
  72.          DIV    BL
  73.          MOV    RIS, AL              ;RISULTATO DIVISION = AL
  74.          MOV    RES, AH              ;RESTO DIVISION = AH  
  75.          LEA    DX, MSG2             ;
  76.          MOV    AH, 9                ;SINTASSI PER FAR APPARIRE IL MSG1
  77.          INT    21h                  ;
  78.          MOV    DL, RIS
  79.          OR     DL, 30h
  80.          MOV    AH, 02               ;
  81.          INT    21h                  ; stampa
  82.          
  83.          MOV    DL, RES
  84.          OR     DL, 30h
  85.          MOV    AH, 02               ;
  86.          INT    21h                  ;stampa
  87.          
  88. ESCI:
  89.  
  90. ; ritorno al Sistema Operativo
  91.     RET
  92. START   ENDP
  93.  
  94. ;*******************************************
  95.  
  96. CSEG    ENDS
  97.  
  98.         END    START    ; Definisce il punto di ingresso.