fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

8086 urgente¡¡¡¡
 
Avisos
Vaciar todo

8086 urgente¡¡¡¡

5 Respuestas
3 Usuarios
0 Reactions
2,313 Visitas
diaio
Respuestas: 186
Topic starter
(@diaio)
Ardero
Registrado: hace 19 años

Necesito un manual en español y bien explicado del lenguaje ensamblador 8086, tengo un examen practico en unas semanas y quiero empollarlo a fondo, una ayuda please, todo me sirve.
¿cual es el ensamblador/desensamblador mas usado?
¿algun programa bueno que rule en windows, emulador del 8086?

En el examen nos dan un fichero (*.exe,*.bat,*.com, *.asm etc..) y nos piden que sepamos que es lo que hace ese fichero, llamar a una dll, formatear un disket, modificar los atributos de otro fichero, copiarse en una direccion de memoria especifica etc...

Muchas gracias por anticipado

Responder
4 respuestas
rashii
Respuestas: 530
(@rashii)
Ardero
Registrado: hace 19 años

Bueno yo el ensamblador que uso es el del procesador MIPS y el ensamblador se llama SPIM, no se si te servira, ya que no detallas que procesador usas....

Responder
diaio
Respuestas: 186
Topic starter
(@diaio)
Ardero
Registrado: hace 19 años

El procesador donde correra el emulador es un intel pentium con winxp, pero las instrucciones son las del 8086 de toa la vida,las basicas del 8086 de intel.

Responder
rashii
Respuestas: 530
(@rashii)
Ardero
Registrado: hace 19 años

Bueno, un ejemplo de las instrucciones que yo uso en el procesador MIPS son estas:
.data
datos: .word 1, 3, -3, 27, 39
cad: .asciiz "El resultado es: "

.globl main
.text
main:
la $s0, datos
lw $a0, 0($s0) #cargamos los datos
lw $a1, 4($s0)
lw $a2, 8($s0)
lw $a3, 12($s0)
lw $t0, 16($s0)
addi $sp, $sp, -8 #creamos espacio en la pila para 2 variables
sw $ra, 4($sp) #guardamos la dirección de retorno
sw $t0, 0($sp) # y el argumento
jal minimo
lw $ra, 4($sp) #restauramos el ra
addi $sp, $sp, 8 #y la pila
add $s1, $zero, $v0 #en S1 guardamos el mínimo
la $a0, cad
addi $v0, $zero, 4
syscall #imprimimos la cadena
add $a0, $zero, $s1
addi $v0, $zero, 1
syscall #imprimimos el resultado
jr $ra

####################################################################
# Función Mínimo: Calcula el mínimo de 5 argumentos.
# Argumentos: 5 enteros (a0-a3 y pila)
# Devuelve: un entero en v0
####################################################################
minimo:
add $v0, $zero, $a0 #Asignamos el primer argumento al mínimo (v0)
slt $t0, $a1, $v0 #Si el segundo argumento < mínimo
beq $t0, $zero, comp2
add $v0, $zero, $a1 #Entonces mínimo = segundo argumento (a1)
comp2: slt $t0, $a2, $v0 #Si el 3º arg. < min
beq $t0, $zero, comp3
add $v0, $zero, $a2 #Entonces min = 3º arg
comp3: slt $t0, $a3, $v0 #Si 4º arg. < min
beq $t0, $zero, comp4
add $v0, $zero, $a3 #Entonces min = 4º arg
comp4: lw $t1, 0($sp) #cargamos el 5º argumento desde la pila
slt $t0, $t1, $v0 #Si 5º arg < min
beq $t0, $zero, fin
add $v0, $zero, $t1 #Entonces min = 5º arg
fin: jr $ra

No se si seran parecidas al tuyo...

Responder
El_Piranna
Respuestas: 91
(@el_piranna)
Trusted Member
Registrado: hace 19 años

Podrias usar QEmu, que es Software Libre y sirve para todo (hasta corre en Windows, flipalo 😀 ) Una de las ventajas que tiene y que no sabia es que se puede linkar con el GDB para analizar paso a paso los sistemas operativos, y te emula x86, PowerPC y MIPS, y no se que mas... 😀

Responder
Compartir: