Merci beaucoup Nasman !

Grâce à toi j'ai enfin compris la différence entre le carry flag (flag de retenue) et l'overflow. Et si je ne me trompe pas l'arithmétique signée n'a pas d'instruction spéciale, ce sont les instructions add et sub qui font l'affaire (pour la division et la multiplication il y a idiv et imul).
Je profite juste du faite que ton pseudo soit NASMAN

pour te poser une question sur l'opérande de concaténation dans NASM : "%+". Chez moi NASM m'affiche une erreur lorsque je veux l'utiliser.
Par exemple avec un code comme ceci (donné en exemple dans le manuel de NASM) :
%define BDASTART 400h ; Start of BIOS data area
struc tBIOSDA ; its structure
.COM1addr RESW 1
.COM2addr RESW 1
; ..and so on
endstruc
%define BDA(x) BDASTART + tBIOSDA. %+ x
puis pour utiliser le macro:
mov ax,BDA(COM1addr)
mais chez moi NASM lève une erreur de ce type:
main.asm:16: symbol `tBIOSDA.' undefined