






Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Fundamentos de Computadores, Profesor: ja ja, Carrera: Ingeniería Informática, Universidad: UCM
Tipo: Ejercicios
1 / 12
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!







Registros r0 0x r1 (^) 0x r2 (^) 0xFFFFFFFF r3 (^) 0x r4 (^) 0x
Memoria 0x00000000 0x 0x00000004 0xEA0063AF 0x00000008 0x17FA 0x0000000C 0xBC 0x00000010 0x7845F34A 0x00000014 0x534B4AAA
ldr r1, =x ldr r2, =y ldr r3, [r1] ldr r4, [r2] cmp r3, r blt Salir add r3, r3, # str r3, [r1] sub r4, r4, # str r4, [r2]
Salir:
ldr r0, =x ldr r1, =y ldr r2, [r0] ldr r3, [r1] cmp r2, r blt Op b Op Op2: sub r2,r2,# sub r3,r3,# str r2, [r0] str r3,[r1] Op: add r2,r2,# add r3,r3,# str r2,[r0]
a: .word 81 b: .word 18 ldr r0, =a ldr r1, =b ldr r2, [r0] ldr r3, [r1] sub r2, r2, r str r2, [r0]
LOOP: cmp r2,# ble Salir sub r2, r2, r str r2, [r0] b LOOP
Salir:
Solución profesor:
.global start
.data a: .word 81 b: .word 18
.text start: ldr r2,=a ldr r0,[r2] ldr r3,=b ldr r1,[r3] REPEAT: sub r0,r0,r cmp r0,# bgt REPEAT
END: str r0,[r2]
b. .end
n: .word 5 fant: .word f: .word 1 c: .word 2 ldr r0, = n ldr r1, = fant ldr r2, = f ldr r3, = i ldr r4, [r0] ldr r5, [r1] ldr r6, [r2] ldr r7, [r3] LOOP: cmp r7, r bgt Salir ldr r8, =faux ldr r9, [r8] mov r9, r add r6, r6, r str r6, [r2] mov r5, r str r5, [r1] str r9, [r8] add r7, r7, # str r7, [r3]
mov r1, # ldr r2, =n ldr r3, [r2] ldr r4, =f ldr r5, [r4] LOOP: cmp r1,r bgt Salir add r5, r5, r add r1, r1, # b LOOP Salir: str r5, [r4]
Solución profesor:
.global start
.data n: .word 8 f: .word 10
.text start: ldr r0,=n ldr r0,[r0] mov r1=# ldr r2,=f ldr r2,[r2] FOR: cmp r1,r bgt END add r2,r2,r add r1,r1,# b FOR END: ldr r1,=f str r2,[r1]
b. .end
algoritmo de restas de Euclides.Traducirlo a ensamblador del ARM:
contiene.
.global start .data V: .word x, y, z, t, u, v @ Son los seis valores del supuesto vector (a modificar) .bss Contador: .space 4 .text start: mov r0, #0 @ Contador mov r1, #0 @ i ldr r2,=V
FOR: cmp r1, # bge END ldr r3, [r2, r1, LSL #2] cmp r3, # ble I++ add r0, r0, #
I++: add r1, r1, #
al lenguaje ensamblador del ARM.
const int N = 10 typedef int tVector[N]; tVector A, B, C; for (int i = 0; i < N; i++){ C[ i ] = A[ i ] + B[N - 1 - i ]; }
.global start .data .equ N, # A: .word 1 2 3 4 5 6 7 8 9 10 11 B: .word 10 9 8 7 6 5 4 3 2 11 13 .bss C: .space 4 * N .text start: ldr r0, =A ldr r1, =B ldr r2, =C mov r3, # mov r4, #N sub r4, r4, # mov r8,# FOR: cmp r3, N bge SALIR ldr r5, [r0, r3, LSL #2] ldr r6, [r1, r4, LSL #2] add r7, r5, r cmp r7,r bge SALTAR sub r7,r8,r SALTAR: str r7, [r2, r3, LSL #2] add r3, r3, # sub r4, r4, # b FOR Salir: b. .end