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

Adjunto 'extraenum_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 *  TEST CODE
  16 *  ==============================
  17 */
  18 reset:  ldr sp,=STACK
  19         ldr r1,=VECTOR
  20         ldr r2,=POSICION 
  21         ldr r3,=TAMANIO
  22 
  23 otro:   ldrb r0,[r1],#1
  24         cmp r0,#0
  25         beq salir
  26         cmp r0,#'-'   
  27         beq pasar
  28         
  29         bl esnumero
  30         cmp r0,#0 
  31         beq continuar           @ si no es signo menos o dígito, continua 
  32 pasar:
  33 /* contar el resto del número hasta encontra un no dígito y no signo */
  34         sub r0,r1,#1        
  35         str r0,[r2],#4          @ guarda la posición de signo o dígito encontrado
  36         mov r4,#1               @ contador de dígitos
  37 otro_d: ldrb r0,[r1],#1
  38         cmp r0,#0
  39         beq salir_num
  40         
  41         cmp r0,#'.'             @ verificar si es punto 
  42         beq contar
  43         
  44         cmp r0,#','             @ verificar si es coma 
  45         beq contar
  46         
  47         mov r5,r0
  48 
  49         bl esnumero             @ verificar si es numero  
  50         cmp r0,#1
  51         beq contar
  52         
  53         mov r0,r5        
  54 
  55         bl esletra              @ verificar si es letra  
  56         cmp r0,#1
  57         beq contar 
  58         
  59         b salir_num        
  60 
  61 contar:
  62         add r4,#1
  63         b otro_d
  64 salir_num:
  65         str r4,[r3],#4         @ cuarda el conteo 
  66 continuar:        
  67         b otro
  68 salir:
  69 loop:   b loop
  70 
  71 /*
  72 devuelve si un ascii es un digito decimal
  73 entrada r0 con el ascii
  74 salida r0=0 no es digito r0=1 es digito
  75 */
  76 esnumero:
  77         cmp r0,#'0'
  78         blo esnumero_no
  79         cmp r0,#'9'
  80         bhi esnumero_no
  81         mov r0,#1
  82         b esnumero_salir
  83 esnumero_no:
  84         mov r0,#0
  85 esnumero_salir:
  86         mov pc,lr
  87 
  88 /*
  89 devuelve si un ascii es una letra hexa (A-F)
  90 entrada r0 con el ascii
  91 salida r0=0 no es letra r0=1 es letra
  92 */
  93 esletra:
  94         cmp r0,#'A'
  95         blo esletra_no
  96         cmp r0,#'F'
  97         bhi esletra_no
  98         mov r0,#1
  99         b esletra_salir
 100 esletra_no:
 101         mov r0,#0
 102 esletra_salir:
 103         mov pc,lr
 104         
 105 
 106 VECTOR: .asciz "hola3442,323 mundo0A.3345"
 107 .balign 4
 108 POSICION: .word 0,0,0,0,0,0,0,0,0,0,0,0
 109 TAMANIO: .word  0,0,0,0,0,0,0,0,0,0,0,0 
 110       .space(200)
 111 STACK:
 112 
 113         .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.