Bienvenido: Ingresar
location: attachment:contarletrasrep_ex1.s de WebHome/TrabajosPracticos/PracticoASM4

Adjunto 'contarletrasrep_ex1.s'

Descargar

   1 .text
   2 .arm
   3 .global _start
   4 _start:
   5         b reset
   6         b loop
   7         b loop
   8         b loop
   9         b loop
  10         nop
  11         b loop
  12         b loop
  13 
  14 /* ==============================
  15 *  CODIGO
  16 *  ==============================
  17 */
  18 reset:
  19         mov r1,#VECT   @ vector origen 
  20         mov r2,#VEC1   @ vector de byte destino con las letras 
  21         mov r3,#VEC2   @ vector de halfword destino con las cantidades de cada letra
  22         mov r6,#0      @ ultima letra guardada (inicia con 0 para que la comparacion sea negativa y entre a agregar)
  23         mov r7,#1      @ contador de letras repetidas (inicia con 1 sin embargo la primera pasada si o si entra a agregar 
  24                        @ donde se vuelve a inicializar con 1, esta linea entonces no es necesaria)  
  25 
  26 otro1:  ldrb r5,[r1],#1 @ lee la letra de destino 
  27         cmp r5,#0       @ si es 0 llego a fin de cadena y sale
  28         beq final  
  29         cmp r5,r6       @ comparar con la ultima letra guardada ( la primera pasada r6 es 0 entonces esta comp da diferente si o si)
  30         bne agregar     @ si son distintas voy a agregar
  31         add r7,r7,#1    @ si las letras eran iguales incremento r7 y lo guardo en r3 - 2 
  32         strh r7,[r3,#-2] 
  33 continuar:
  34         b otro1
  35 /* ==========================================================================
  36 * agregar: agrega una nueva entrada a los dos vectores destino, guardando en 
  37 * VEC1 la letra leida y en VEC2 inicializando con 1 
  38 * si bien se plantea como funcion, no lo es, la devolucion de una función se 
  39 * debe realizar utilizando el lr no con una instruccion b.
  40 * esta funcion guarda la letra e inicializa con 1 el vector VECT2 con una 
  41 * instruccion de postincremento, esto significa que cuando se quiera acceder a 
  42 * la cuenta de la ultima letra guardada, se debe restar 2 al valor de r3 
  43 * ==========================================================================*/ 
  44 agregar:
  45         mov r7,#1
  46         strb r5,[r2],#1 @ guarda la ultima letra leida
  47         strh r7,[r3],#2 @ inicializa cuenta con 1 
  48         mov r6,r5       @ actualiza r6 con la nueva letra
  49         b continuar
  50 final:
  51 loop:   b loop
  52 
  53 /* ==============================
  54 *  CONTANTES
  55 *  ==============================
  56 */
  57 VECT:	.asciz "fssddgggrrteeeeeeeew"
  58 VEC1: .space(21)
  59 VEC2: .space(21)
  60         .end

Archivos adjuntos

Para referirse a los adjuntos de una página, usa attachment:nombredelarchivo, como se muestra abajo en la lista de archivos. NO uses la URL del enlace [get], ya que puede cambiar fácilmente y dejar de funcionar.
  • [obtener | ver] (2019-09-02 11:56:14, 110.6 KB) [[attachment:ARM_Instruction_Set.pdf]]
  • [obtener | ver] (2019-09-02 11:56:14, 1.1 KB) [[attachment:Makefile]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.4 KB) [[attachment:alarma_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.5 KB) [[attachment:alarma_s_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 2.3 KB) [[attachment:anumero1_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 2.9 KB) [[attachment:anumero2_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.6 KB) [[attachment:cadena_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 1.2 KB) [[attachment:cercano_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.8 KB) [[attachment:clave_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 1.4 KB) [[attachment:compara_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 2.2 KB) [[attachment:contarletrasrep_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 1.5 KB) [[attachment:contarrep_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 1.2 KB) [[attachment:criba_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 2.3 KB) [[attachment:extraenum_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 1.2 KB) [[attachment:igualarlargo_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 1.7 KB) [[attachment:inspalabra_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.9 KB) [[attachment:invertir_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.9 KB) [[attachment:may_min_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.6 KB) [[attachment:multip_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.6 KB) [[attachment:potencia_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.8 KB) [[attachment:potencia_ex1.s,v]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.8 KB) [[attachment:prom_vector_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.6 KB) [[attachment:promedio_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.8 KB) [[attachment:promedio_ex1.s,v]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.7 KB) [[attachment:punt_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.8 KB) [[attachment:punt_ex1.s,v]]
  • [obtener | ver] (2019-09-02 11:56:14, 1.9 KB) [[attachment:separa_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 472.2 KB) [[attachment:slides.pdf]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.5 KB) [[attachment:suma100_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.6 KB) [[attachment:suma64_ex1.s]]
  • [obtener | ver] (2019-09-02 11:56:14, 0.8 KB) [[attachment:suma64_ex1.s,v]]
  • [obtener | ver] (2019-09-02 11:56:14, 160.3 KB) [[attachment:tp1.pdf]]
  • [obtener | ver] (2019-09-02 11:56:14, 167.3 KB) [[attachment:tp3.pdf]]
 All files | Selected Files: delete move to page copy to page

No tienes permisos para adjuntar un archivo a esta página.