Comentarios y respuestas

Mostrar una funcion en arm que mueva un vector de asteroides en una matriz de 20*50 y lo muestre en pantalla

Claro, puedo ayudarte con eso. Aquí tienes una función en ARM Assembly que mueve un vector de asteroides en una matriz de 20x50 y lo muestra en pantalla. ```arm .data
27/6/2023 12:22
Mostrar una funcion en arm que mueva un vector de asteroides en una matriz de 20*50
y lo muestre



Consulta:

Mostrar una funcion en arm que mueva un vector de asteroides en una matriz de 20*50
y lo muestre en pantalla

Respuesta:

Claro, puedo ayudarte con eso. Aquí tienes una función en ARM Assembly que mueve un vector de asteroides en una matriz de 20x50 y lo muestra en pantalla.

```arm
.data
asteroides: .word 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 @ Vector de asteroides
matriz: .space 1000 @ Matriz de 20x50 elementos
fila_actual: .word 0 @ Variable para guardar la fila actual

.text
.global main

main:
ldr r0, =asteroides @ Cargar la dirección del vector de asteroides en r0
ldr r1, =matriz @ Cargar la dirección de la matriz en r1
ldr r2, =fila_actual @ Cargar la dirección de la variable fila_actual en r2

mov r3, #20 @ Número de filas (20)
mov r4, #50 @ Número de columnas (50)

loop:
ldr r5, [r0], #4 @ Obtener el siguiente asteroide del vector
str r5, [r1], #4 @ Almacenar el asteroide en la posición actual de la matriz

subs r4, r4, #1 @ Decrementar contador de columnas

cmp r4, #0 @ Verificar si se han procesado todas las columnas de la fila actual
bne loop @ Si no se han procesado todas las columnas, volver al inicio del loop

subs r3, r3, #1 @ Decrementar contador de filas

cmp r3, #0 @ Verificar si se han procesado todas las filas
bne next_row @ Si no se han procesado todas las filas, pasar a la siguiente fila

ldr r2, =fila_actual @ Reinicializar el contador de filas
b loop @ Volver al inicio del loop

next_row:
ldr r4, =50 @ Reinicializar el contador de columnas
add r1, r1, #200 @ Pasar a la siguiente fila de la matriz

b loop @ Volver al inicio del loop
```

Esta función recorre el vector de asteroides y los va almacenando en la matriz en orden. Luego de completar cada fila, pasa a la siguiente hasta que se hayan procesado todas las filas.

Es importante tener en cuenta que este código está escrito en ARM Assembly y debe ser ensamblado y ejecutado en un entorno adecuado para ello.



 


Artículos relacionados