Calcolo della distanza di Hamming

Calcolo della distanza di Hamming

Si scriva un programma Assembler che calcola la distanza di Hamming tra 2 dati memorizzati su 16 bit.
Si ricorda che la distanza di Hamming tra 2 parole è pari al numero di bit diversi.

Calcolo della distanza di Hamming
.MODEL SMALL
.STACK
.DATA
a DW 45
b  DW 56
conta db 0
msg db “calcolo della distanza di hamming tra due parole a 16 bit”
.CODE
.STARTUP
MOV BX, a ;COPIO IN BX IL VALORE DI a
XOR BX, b ;EFFETTUO LA XOR TRA BX E b E PONGO IL RISULTATO IN BX *
MOV CX, 16 ;inzializzo il contatore  CX
CICLO:
SHR BX, 1 ;ESEGUO UNO SHIFT LOGICO A DESTRA DI BX
JNC FINE_CICLO ;SE CF=0 SALTO A “FINE_CICLO” ALTRIMENTI PROSEGUO ;CON LA RIGA SUCCESSIVA
INC  conta ;INCREMENTO contatore
FINE_CICLO:
LOOP CICLO ;DECREMENTO CX ED ESEGUO IL LOOP SE ESSO È DIVERSO DA 0
MOV AH,02
MOV DL,conta ; copio io contatore in dl
ADD DL,30H ;TRASFORMO IL NUMERO IN CARATTERE
INT 21h; VISUALIZZO IL CARATTERE
MOV CX, 4C00h ;ritorno al sistema operativo
int 21h
.EXIT
END
 

Leave a Reply


Latest Posts

AAA