elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Programa en ensamblador:
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa en ensamblador:  (Leído 3,121 veces)
Smiley2036

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Programa en ensamblador:
« en: 14 Abril 2015, 20:44 pm »

Muy buenas:

Estoy estudiando ingeniería informática. En una asignatura (Fundamentos de computadores) estamos dando ahora mismo como empezar a programar en ensamblador, en concreto usamos el lenguaje ensamblador del MIPS-R2000

El tema me gusta bastante, pero me está costando bastante también, entre otras cosas por que apenas he encontrado nada sobre él aparte de lo que nos dan en la uni, que a veces resulta bastante escaso.

Tengo un primer programa de un boletín, es este:


.data                              # Reserva de espazo para datos en memoria.
cadena: .space 100      # Reservamos 100 bytes baixo o nome de
                              # "cadena"

.text                              # Texto obligatorio para comezar
.globl main                      # un programa
main:

la $a0, cadena              # Gardamos en $a0 a dirección da cadea
addi $a1, $0, 100      # de texto e en $a1 a lonxitude máxima
addi $v0, $0, 8              # Lectura da cadea por teclado
syscall

addi $v0, $0, 4              # Impresión da cadea por pantalla
syscall


addi $v0, $0, 10              # Finalización do programa
syscall


La cuestión es que hay algunas partes del programa que no entiendo bien, como por ejemplo el guardar la longitud máxima en $a1 o como se realiza la lectura por teclado o se imprime la cadena introducida por pantalla.

Agradecería mucho si alguien pudiese explicarme un poco este programa, creo que una vez visto el cuadro completo podré comenzar por mi mismo con los siguientes pero ahora mismo... por mis dudas creo que se aprecia que estoy más perdido que Tom Cruise en una orgía en Eyes wide shut XDD.


« Última modificación: 14 Abril 2015, 20:50 pm por Smiley2036 » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Programa en ensamblador:
« Respuesta #1 en: 14 Abril 2015, 21:12 pm »

Código
  1. addi $a1, $0, 100

Guarda en el registro $a1 la suma de los otros dos parámetros (0 + 100) -> ADDI

Es 100, en .data puso el tamaño en bytes.

Luego lo de lectura de cadena, impresión por pantalla, finalización del programa, son todos syscall, a los que se les pasa un parámetro por $v0, que identifica lo que hará syscall -> SYSCALL

Syscall tiene varios códigos, ahí los ves bien explicados (ahí, o en otro lugar, donde mejor lo encuentres)


En línea

Smiley2036

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Programa en ensamblador:
« Respuesta #2 en: 14 Abril 2015, 21:23 pm »

Aaaah vale vale, ahora viendo esta página que me has pasado ya me queda mucho más claro. Es que desconocía los códigos para $v0 que aparecen en esa tabla!!, muchas gracias!!.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pasar programa C a ensamblador « 1 2 3 »
Programación General
dreams88 21 36,928 Último mensaje 14 Septiembre 2016, 15:00 pm
por elig
flujo programa ensamblador
Ingeniería Inversa
fumioli 4 3,549 Último mensaje 7 Abril 2013, 19:21 pm
por fumioli
Programa de leds en ensamblador (MPLAB) con PIC16F84A
Ejercicios
Magiiq 2 17,013 Último mensaje 21 Mayo 2013, 19:15 pm
por Magiiq
Acceder a direcciones de memoria fuera de mi programa. Ensamblador y C
Hacking
dvpuchades 2 3,718 Último mensaje 16 Diciembre 2014, 19:30 pm
por dvpuchades
Error en programa en Ensamblador
ASM
michellcrh 1 2,803 Último mensaje 10 Junio 2022, 01:51 am
por xv0
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines