.model small .STACK .DATA msg db 'input data?$' odoa db 0dh,0ah,'$' msg1 db 'the result is --> $' NO1 DB ? NO2 DB ? .CODE ; MOV AX,@DATA MOV DS,AX ; lea dx,msg mov ah,09 int 21h mov ah,01 ; input from kb int 21h sub al,30h mov no1,al lea dx,odoa mov ah,09 int 21h ; lea dx,msg mov ah,09 int 21h mov ah,01 ; input from kb int 21h sub al,30h mov no2,al lea dx,odoa mov ah,09 int 21h ; mov dl,no1 add dl,30h MOV AH,02 INT 21H ; mov dl,'+' INT 21H ; mov dl,no2 add dl,30h INT 21H ; mov dl,'=' INT 21H ; xor ah,ah ; mov al,no1 add al,no2 ; aaa mov bx,ax mov dl,ah add dl,30h mov ah,02h int 21h ; mov dl,bl add dl,30h mov ah,02h int 21h ; ; cbw ; extend sign bit of al because use AX as divider ; mov cl,10 ; div cl ; mov cl,ah ; al is the quotient, ah is the remainder ; ; mov dl,al ; add dl,30h ; mov ah,02 ; INT 21H ; ; mov dl,cl ; add dl,30h ; INT 21H ; mov ah,4ch int 21h END