Adjunto 'maximaxy.s'
Descargar 1 .arm
2 .global _start
3 _start:
4 b reset
5 b loop
6 b loop
7 b loop
8 b loop
9 nop
10 b loop
11 b loop
12
13 /* ==============================
14 * TEST CODE
15 * buscar el punto xy mas alejado del origen
16 * ==============================
17 */
18 reset:
19 ldr r4,=VEC1
20 mov r5,r4
21 mov r2,#3
22
23 otro: mov r0,r4
24 mov r1,r5
25 bl mayor
26 cmp r0,#0
27 bne nomayor
28 mov r5,r4
29 nomayor:
30 add r4,#4
31 subs r2,#1
32 bne otro
33
34 loop: b loop
35
36 .ltorg
37
38 @ -----------------------------------------------------------------------------
39 @ funcion dado dos pares de numeros consecutivos de tipo hword con signo apuntado por r0
40 @ devolver en r0 = r0 * r0 + r1 * r1
41 @ -----------------------------------------------------------------------------
42 modulo:
43 push {r1,r2,r3}
44 ldrsh r1,[r0],#2
45 mul r2,r1,r1
46 ldrsh r1,[r0]
47 mul r3,r1,r1
48 add r0,r2,r3
49 pop {r1,r2,r3}
50 mov pc,lr
51
52 @ ----------------------------------------------------------------------------
53 @ dado dos punteros r0 y r1 que apuntan a sendos pares de numero, devolver 0 en r0
54 @ si |r0| > |r1| 1 en caso contrario
55 mayor:
56 push {r2,lr}
57 bl modulo
58 mov r2,r0
59 mov r0,r1
60 bl modulo
61 cmp r2,r0
62 mov r0,#1
63 bls mayor_no
64 mov r0,#0
65 mayor_no:
66 pop {r2,lr}
67 mov pc,lr
68 /* fin función */
69
70 /* ==============================
71 * CONTANTES
72 * ==============================
73 */
74 VEC1: .hword 10,20, 4,-3, 8,4
75 .space 200
76 STACK:
77 .balign 4
78 .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.