;   Aquest programa entra dos nombres enters i escriu la suma
;       Ha de ser LINKat amb l'arxiu STRASM que cont‚ els
;   subprogrames STRINP, STRLON, INTASTR, STRAINT.
;
; Aquí hem comprovat que " és igual que ' (en la definició dels
; missatges i del terminador; i
;
;
        EXTRN           STRINP:FAR, STRLON:FAR, INTASTR:FAR, STRAINT:FAR
;     Definici¢ de la MACRO de la interrupci¢ de serveis del DOS
DosCall MACRO   Serv
        MOV     AH, Serv
        INT     21h
        ENDM
;
PILA    SEGMENT PARA STACK 'STACK'
        DB      32 DUP(0)
PILA    ENDS
;
data            SEGMENT PARA PUBLIC 'DATA'
term    DB      '$'
MSG1    DB      13,10,'Entra el primer enter: ','$'
MSG2    DB      13,10,'Entra el segon enter : ','$'
MSG3    DB      13,10,'La suma ‚s : ','$'
string  DB      256 DUP(0)
entero1         DW      0
data            ENDS
;
CODE            SEGMENT PARA PUBLIC 'CODE'
        ASSUME  CS:CODE
MAIN    PROC    FAR
        
        MOV     AX,data
        MOV     DS,AX
        MOV     ES,AX
        ASSUME  DS:data
;
        LEA     DX,string     ;Apilar adre‡a cadena a llegir
        PUSH    DX
        MOV     AL,term       ;Apilar car…cter de terminaci¢
        MOV     AH,0
        PUSH    AX
        LEA     DX,MSG1       ;Entrar cadena primer enter
        DosCall 09h
        CALL    STRINP
        CALL    STRAINT       ;Convertir a nombre enter
        MOV     entero1,AX
        LEA     DX,MSG2       ;Entrar cadena seg¢n enter
        DosCall 09h
        CALL    STRINP
        CALL    STRAINT       ;Convertir a nombre enter
        ADD     AX,entero1    ;Fer la suma
        PUSH    AX            ;Apilar el resultat de la suma
        CALL    INTASTR       ;Convertir a cadena alfanumŠrica
        ADD     SP,6          ;Restaurar la pila
        LEA     DX,MSG3       ;Escriure resultat
        DosCall 09h
        LEA     DX,string
        DosCall 09h
        Doscall 4ch           ;Retorn al DOS
;
        RET
                 
MAIN    ENDP
CODE            ENDS
        END     MAIN

