Advertisement
felipe4004

reverse_string

Jun 4th, 2019
182
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. CONSTANT SW, 01     ; SWITCHES = 01h
  4. CONSTANT LED, 02  ; led = 02h
  5.  
  6.  
  7.  
  8. input_process:
  9.  
  10.     INPUT s0, SW    ; s0 recebe as chaves
  11.     LOAD s1, s0     ; s1 recebe s0
  12.     LOAD s2, s0     ; s2 recebe s0
  13.     LOAD s6, 00     ; s6 recebe 00
  14.     LOAD s7, 01     ; mascara1
  15.     LOAD s8, 80     ; mascara2
  16.     JUMP loop       ; retorno para o inicio da rotina
  17.  
  18. loop:
  19.     COMPARE s6, 3; comparação para saber se as iterações terminaram
  20.     JUMP Z, loop2
  21.     LOAD s3, s1     ; transfere para outro endereço para a comparação
  22.     LOAD s4, s2     ; transfere para outro endereço para a comparação
  23.     AND s3, s6   ; mascara a primeira parcela da string na iteração
  24.     AND s4, s7   ; mascara a segunda parcela da string na iteração
  25.     COMPARE s3, s4  ; compara ambas as strings mascaradas, se forem diferentes, elas trocam de posição
  26.     JUMP Z, equal ; pula pra instrução caso seja diferente
  27.     XOR s1, s6  ; inverte os valores da mascara
  28.     XOR s1, s7  ; inverte os valores da mascara
  29.     ADD s6, 2    ; muda de, e.g., 0001 p/ 0010
  30.     SUB s7, 2    ; muda de, e.g., 1000 p/ 0100
  31.     ADD s6, 01      ; adiciona 1 para incremetar no loop while
  32.  
  33. equal:
  34.     ADD s6, 2    ; muda de, e.g., 0001 p/ 0010
  35.     SUB s7, 2    ; muda de, e.g., 1000 p/ 0100
  36.     ADD s6, 01      ; adiciona 1 para incremetar no loop while
  37.     JUMP loop
  38.  
  39.    
  40. loop2:
  41.     OUTPUT s1, LED
  42.     JUMP input_process
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement