Advertisement
felipe4004

reverse_string

Jun 2nd, 2019
1,353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;Programa para rotação dos bits de entrada
  2.  
  3. SW DSIN 53     ; SWITCHES = 01h
  4. LED DSOUT 02  ; led = 02h
  5.  
  6.  
  7.  
  8. input_process:
  9.  
  10.     IN s0, SW    ; s0 recebe as chaves
  11.     LOAD s1, s0    ; s1 recebe s0
  12.     LOAD s6, 00     ; s6 recebe 00
  13.     LOAD s7, 01 ; mascara1
  14.     LOAD s8, 128 ; mascara2
  15.     JUMP loop    ; retorno para o inicio da rotina
  16.  
  17. loop:
  18.     COMP s6, 04 ; comparação para saber se as iterações do loop terminaram
  19.     ; vai até quatro porque senao ele nao lê o terceiro bit
  20.     JUMP Z, saida;
  21.     LOAD s3, s1     ; transfere para outro endereço para a comparação
  22.     LOAD s4, s1     ; transfere para outro endereço para a comparação
  23.     AND s3, s7   ; mascara a primeira parcela da string na iteração
  24.     AND s4, s8   ; mascara a segunda parcela da string na iteração
  25.  
  26. comparator:
  27.     COMP s3, s4   ; compara ambas as strings mascaradas, se forem diferentes, elas trocam de posição
  28.     JUMP Z, equal ; pula pra instrução caso seja igual
  29.     XOR s3, s7    ; Caso ambas as posições sejam '1', faz-se o xor novamente
  30.     XOR s4, s8    ; para que vire 0 e passe na condição acima
  31.     COMP s3, s4
  32.     JUMP Z, comparator
  33.     XOR s1, s7  ; inverte os valores da mascara
  34.     XOR s1, s8  ; inverte os valores da mascara
  35.     SL0 s7    ; muda de, e.g., 0001 p/ 0010
  36.     SR0 s8    ; muda de, e.g., 1000 p/ 0100
  37.     ADD s6, 01      ; adiciona 1 para incremetar no loop while
  38.     JUMP loop
  39.  
  40. equal:
  41.     SL0 s7    ; muda de, e.g., 0001 p/ 0010
  42.     SR0 s8    ; muda de, e.g., 1000 p/ 0100
  43.     ADD s6, 01   ; adiciona 1 para incremetar no loop while
  44.     JUMP loop
  45.  
  46.  
  47. saida:
  48.     OUT s1, LED
  49.     JUMP input_process
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement