DOSSEG .MODEL Small .STACK 100h .DATA message1 db 'trame a construire: $' message2 db 0dh,0ah, 'Trame construite: $' TAB_PACKET db 01h,01h,01h,01h,01h,01h,01h,01h,01h,01h,011h dup(0) TAB_TRAME db 24 dup(0) .CODE DEBUT: mov AX,@DATA mov DS,AX mov dx,offset message1 mov ah,9 int 21h mov di,0 tourn: mov al,TAB_PACKET[di] push ax call EN_BINAIRE ;affichage TAB_PACKET inc di cmp di,10 jne tourn call constrame mov dx,offset message2 mov ah,9 int 21h mov di,0 trame: mov al,TAB_TRAME[di] push ax call EN_BINAIRE inc di cmp di,24 jne trame FIN: mov AH,04Ch int 21h codage proc mov ah,0 mov cl,4 shl ax,cl shr al,cl add al,01000000b add ah,01000000b ret codage endp constrame proc mov di,0 mov si,0 mov cx,0 mov TAB_TRAME[di],02h ;FT addition: add cl,TAB_PACKET[si] inc si ;FCS cmp si,10 jne addition mov TAB_PACKET[10],cl mov si,0 mov di,1 boucle: mov al,TAB_PACKET[si] call codage inc si mov TAB_TRAME[di],ah inc di mov TAB_TRAME[di],al inc di cmp si,11 jne boucle mov di,23 mov TAB_TRAME[di],03h ;FQ ret constrame endp EN_BINAIRE proc pop dx pop ax push dx mov si,1 dpour: cmp SI,8 ;test de la boucle jg fpour ;idem mov ah,0 shl AX,1 ;decalage de AL ds AH add AH,30h ;conversion en ASCII mov DL,AH ;preparation de l'affichage de AH en le mettant ds DL push AX ;sauvegarde de AX mov AH,02 ;Affichage int 21h ;idem pop ax inc si jmp dpour ;saut de boucle pour fpour: ret EN_BINAIRE endp END DEBUT