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.No tienes permisos para adjuntar un archivo a esta página.