Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; _____________________________________________________________________________________________
- ; Inverte Pixeis
- ; Inverte pixel screen
- inverte:
- ; salva registos
- PUSH R1
- PUSH R2
- PUSH R3
- PUSH R4
- ; inicia registos
- MOV R0, last_tecla ; le a tecla premida que foi guardada na memoria
- MOV R3, [R0] ; verifica se nenhuma tecla foi premida
- MOV R4, 0CH ; se isso se verificar acaba a função
- CMP R3, R4
- JNZ clr_genebra_out
- MOV R1, ECRA ; registo com o endereço do primeiro byte do pixel screen
- MOV R3, ECRAfim ; registo com o endereço do ultimo byte do pixel screen
- ; corpo
- clr_ciclo_inverte:
- MOVB R2, [R1]
- NOT R2
- MOVB [R1], R2 ; escreve 00H no byte indicado por R1
- MOV R4, R1 ; Duplica o R1 para R4
- ADD R1, 1 ; incrementa o R1 para passar para o próximo byte
- CMP R4, R3 ; compara com o valor do R1 antes de ter sido incrementado para garantir que limpa o ultimo byte
- JNZ clr_ciclo_inverte ; repete clr_ciclo até chegar ao ultimo endereço
- ; recupera registos
- clr_inverte_out:
- POP R4
- POP R3
- POP R2
- POP R1
- RET
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement