.model small .code org 100h envmode: jmp parse common1 db "Ambiente grafico Microsoft Windows $" common2 db " eseguito in modalit… $" standard db "reale o standard$" enhanced db "avanzata$" win95 db "95$" dos1 db "Sistema operativo $" micros db "Microsoft $" dos2 db "DOS versione $" closing db ".",0dh,0ah,"$" parse proc near mov ax,160ah int 2fh mov cx,cx cmp ax,0 jne keep4 lea dx,common1 call print cmp bx,400h jne keep1 lea dx,win95 call print jmp keep2 keep1: xchg bh,bl call version mov bx,ax mov dl,2eh call echo mov dl,bh call echo cmp bl,30h je keep2 mov dl,bl call echo keep2: lea dx,common2 call print cmp cx,3 jne keep3 lea cx,enhanced call windows keep3: lea cx,standard call windows keep4: mov ax,3000h int 21h mov cx,ax lea dx,dos1 call print cmp bh,0ffh jne keep5 lea dx,micros call print keep5: lea dx,dos2 call print mov bx,cx call version lea di,closing mov [di+1],ah mov [di+2],al mov dx,di call print inc di mov ax,0a0dh stosw lea dx,closing call print mov al,1 quit: mov ah,4ch int 21h parse endp version proc near add bl,30h mov dl,bl call echo mov al,bh aam add ax,3030h retn version endp windows proc near mov dx,cx call print lea dx,closing call print xor al,al jmp quit retn windows endp print proc near mov ah,9 int 21h retn print endp echo proc near mov ah,2 int 21h retn echo endp end envmode