Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .MODEL SMALL
- .STACK
- .DATA
- BIN DB 01001111B
- MSG DB "# bit a 1: ", "$"
- .CODE
- .STARTUP
- MOV BL, BIN ; Così non accedo più in memoria -> più veloce!
- MOV CX, 8 ; Passi da eseguire
- MOV BH, 0 ; Accumulatore dei bit a 1
- CONTA: SHL BL, 1 ; Perdo volontariamente il MSB, che va nel CF
- ADC BH, 0 ; Se il bit del CF è andato a 1, conto la presenza di un bit a 1
- LOOP CONTA ; Ripeto l'operazione per tutti gli 8 bit
- LEA DX, MSG ; Operazione di stampa [nota 1]
- MOV AH, 09
- INT 21H
- MOV DL, BH
- ADD DL, 48
- MOV AH, 02
- INT 21H
- .EXIT
- END
- ; [nota 1]: Occhio che le INT21H hanno anche un ritorno, che è bene guardare prima di
- ; impostare tutto il programma. Ad esempio, se avessi usato AL come accumulatore dei
- ; bit a 1, questo sarebbe stato sovrascritto da 24H dopo la stampa della stringa.
Advertisement
Add Comment
Please, Sign In to add comment