Bibliotheque pour le 8086

Contenu du snippet

une bibliothèque pour le 8086 ,temporisation,affichage du contenu des registres en différente bases,manipulation des chaines ....,à l'aide des interruptions

Source / Exemple :


segment .data
msg db 'saisir un nombre$';pour la fonction lireaxd

segment .text
delay:       ;temporisation ,paramettre ==>DX

     pusha
     mov      cx,dx
a    mov      dx,03DAh
     IN       al,dx
     and      al,00001000b
     jnz      a
la   in       al,dx
     and      al,00001000b
     jz       la
     loop     a
     popa
   ret

affaxd: ;afficher le contenu de AX en d?cimal
	
pusha
     mov      cx,0
b    mov      dx,0
     mov      bx,10
     div      bx
     push     dx
     inc      cx
     cmp      ax,0
     jne      b

c    pop      ax
     add      al,'0'
     mov      ah,0Eh
     int      10h
     loop     c
popa

ret

affaxh:  ;afficher le contenu de AX en hexad?cimal

pusha

     mov      cx,0
d    mov      dx,0
     mov      bx,16
     div      bx
     push     dx
     inc      cx
     cmp      ax,0
     jne      d

e    pop      ax
     cmp      al,9
     jbe      f
     add      al,7
f    add      al,48
     mov      ah,0Eh
     int      10h
     loop     e
popa
ret

affaxb:  ;afficher le contenu de AX en binaire

pusha
     mov      cx,0
g    mov      dx,0
     mov      bx,2
     div      bx
     push     dx
     inc      cx
     cmp      ax,0
     jne      g

k    pop      ax
     add      al,'0'
     mov      ah,0Eh
     int      10h
     loop     k
popa
ret

affald:   ;afficher le contenu de AL en d?cimal

pusha
     mov      ah,0
     mov      cx,0
l    mov      dx,0
     mov      bx,10
     div      bx
     push     dx
     inc      cx
     cmp      ax,0
     jne      l

m    pop      ax
     add      al,'0'
     mov      ah,0Eh
     int      10h
     loop     m
popa
ret

affalh:    ;afficher le contenu de AL en hexad?cimal

pusha
     mov      ah,0
     mov      cx,0
o    mov      dx,0
     mov      bx,16
     div      bx
     push     dx
     inc      cx
     cmp      ax,0
     jne      o

p    pop      ax
     cmp      al,9
     jbe      r
     add      al,7
r    add      al,48
     mov      ah,0Eh
     int      10h
     loop     p

popa
ret

affalb:    ;afficher le contenu de AL en binaire

pusha
    mov  ah,0
    mov  cx,0
s   mov  dx,0
    mov  bx,2
    div  bx
    push dx
    inc  cx
    cmp  ax,0
    jne  s

t    pop      ax
     add      al,'0'
     mov      ah,0Eh
     int      10h
     loop     t

popa
ret

lireaxd:  ;efficher le message d'invite et saisir un d?cimal en AX

pusha
    mov dx,msg
    mov ah,09h
    int 21h

    mov dl,1
    mov dh,2
    mov bh,0
    mov ah,02h
    int 10h

mov bx,0
debut    mov  ah,07h
         int  21h
         mov  ah,0eh
         int  10h
         cmp  al,13
         jz   fin ;fin
         sub  al,48
         mov  dh,0
         mov  dl,al
         mov  ax,bx
         mov  cl,10
         mul  cl
         mov  bx,ax
         add  bx,dx
         jmp  debut
         
fin      mov  ax,bx   
popa
ret

Conclusion :


assemblés avec NASM

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.