Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .MODEL small
- .STACK
- .DATA
- frequenza0 DW 0
- frequenza1 DW 0
- numero DW 512
- mem DW ?
- .CODE
- .STARTUP
- MOV AX, numero
- AND AX, 1
- MOV BX, AX ; Contiene il bit da controllare.
- MOV CX, 0 ; Tiene conto di quanti bit abbiamo fatto lo shift.
- MOV DX, 0 ; Frequenza.
- ciclo:
- CMP CX, 16
- JB esci ; Quando è 16 sono stati controllati tutti i bit.
- MOV AX, numero
- MOV mem, CX ; Memorizzo il contatore.
- shift:
- SHR AX, 1
- LOOP shift
- MOV CX, mem
- AND AX, 1
- CMP AX, BX
- JE incrementa ; Abbiamo trovato un altro bit di frequenza.
- CMP BX,1
- JE frequ_1 ;se si sta controllando una frequenza di 1.
- ; altrimenti si confronta la frequenza di 0.
- CMP DX, frequenza_0 ; se la frquenza contata è maggiore di quella memorizzata va aggiornata quella memorizzata
- JA frequenza_0_maggiore
- JMP reset
- frequenza_0_maggiore:
- MOV frequenza_0, DX
- JMP reset
- frequ_1: CMP DX,frequenza_1
- JA frequenza_1_maggiore
- JMP reset ; altrimenti si resetta.
- frequenza_1_maggiore:
- MOV frequenza_1,DX
- JMP reset
- reset:
- MOV BX, AX ; Si mette nel bit di controllo il bit trovato.
- MOV CX, mem ; Si ripristina il contatore di shift.
- MOV DX, 0 ; Si inizializza la frquenza a 0 e non a uno perché si ricontrolla lo stesso bit.
- JMP ciclo ; Si ripete il ciclo
- incrementa:
- INC DX ; Incrementa la frequenza.
- MOV CX, mem;
- INC CX
- JMP ciclo
- esci:
- INT 21h
- .EXIT
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement