Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Programa para rotação dos bits de entrada
- CONSTANT SW, 01 ; SWITCHES = 01h
- CONSTANT LED, 02 ; led = 02h
- input_process:
- INPUT s0, SW ; s0 recebe as chaves
- LOAD s1, s0 ; s1 recebe s0
- LOAD s2, s0 ; s2 recebe s0
- LOAD s6, 00 ; s6 recebe 00
- LOAD s7, 01 ; mascara1
- LOAD s8, 80 ; mascara2
- JUMP loop ; retorno para o inicio da rotina
- loop:
- COMPARE s6, 3; comparação para saber se as iterações terminaram
- JUMP Z, loop2
- LOAD s3, s1 ; transfere para outro endereço para a comparação
- LOAD s4, s2 ; transfere para outro endereço para a comparação
- AND s3, s6 ; mascara a primeira parcela da string na iteração
- AND s4, s7 ; mascara a segunda parcela da string na iteração
- COMPARE s3, s4 ; compara ambas as strings mascaradas, se forem diferentes, elas trocam de posição
- JUMP Z, equal ; pula pra instrução caso seja diferente
- XOR s1, s6 ; inverte os valores da mascara
- XOR s1, s7 ; inverte os valores da mascara
- ADD s6, 2 ; muda de, e.g., 0001 p/ 0010
- SUB s7, 2 ; muda de, e.g., 1000 p/ 0100
- ADD s6, 01 ; adiciona 1 para incremetar no loop while
- equal:
- ADD s6, 2 ; muda de, e.g., 0001 p/ 0010
- SUB s7, 2 ; muda de, e.g., 1000 p/ 0100
- ADD s6, 01 ; adiciona 1 para incremetar no loop while
- JUMP loop
- loop2:
- OUTPUT s1, LED
- JUMP input_process
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement