4 respuestas
Buenas noches,
Antes de lanzarte a un lenguaje de bajo nivel como ASM, sería bueno aprender la base del funcionamiento de las arquitecturas x86.
- La segmentación de la memoria ( text, data, bss )
- Los registros ( generales, offsets, segmentos )
- Las flags
- Los opcodes y sus usos
- Uso de la pila.
https://fr.wikibooks.org/wiki/Programmation_Assembleur/x86/Registres
lo mejor aún sería para empezar trabajar con los registros de 16 bits y luego pasar a 32 bits y luego a 64 bits.
Si trabajas en Windows también mira el formato PE ( portable executable ) de los encabezados Windows ( PEB, TEB )
Y verás que todo se aclarará para tu problema, entrena para hacer bucles (EAX, ECX ), trabajar cadenas de caracteres etc...
Para desarrollar en ASM lo mejor sería usar :
- notepad++, gedit o otro editor ( para la edición del código ).
- nasm & ld para compilar tu producción. ( x86, x64 )
- Immunity Dbg o OllyDBG para depurar tu programa ( Windows ), IDA Dbg ( linux )
- hexdump ( linux y Windows )
- objdump ( linux y Windows )
Cdt,
Antes de lanzarte a un lenguaje de bajo nivel como ASM, sería bueno aprender la base del funcionamiento de las arquitecturas x86.
- La segmentación de la memoria ( text, data, bss )
- Los registros ( generales, offsets, segmentos )
- Las flags
- Los opcodes y sus usos
- Uso de la pila.
https://fr.wikibooks.org/wiki/Programmation_Assembleur/x86/Registres
lo mejor aún sería para empezar trabajar con los registros de 16 bits y luego pasar a 32 bits y luego a 64 bits.
Si trabajas en Windows también mira el formato PE ( portable executable ) de los encabezados Windows ( PEB, TEB )
Y verás que todo se aclarará para tu problema, entrena para hacer bucles (EAX, ECX ), trabajar cadenas de caracteres etc...
Para desarrollar en ASM lo mejor sería usar :
- notepad++, gedit o otro editor ( para la edición del código ).
- nasm & ld para compilar tu producción. ( x86, x64 )
- Immunity Dbg o OllyDBG para depurar tu programa ( Windows ), IDA Dbg ( linux )
- hexdump ( linux y Windows )
- objdump ( linux y Windows )
Cdt,
la respuesta a
cambiar :
por
b
R0 est n
R1 est ta raison
R2 est le terme
le terme est placé à l'adresse 100
j'espère que c'est ça que tu chercher.
pour n = 5, R = 1, T = 15
pour R0= 5, R1=1, R2=15
cdlt,
cambiar :
cmp R1,#5
por
cmp R1,#10
b
mov R1,#1 B maboucle maboucle: add R0,R0,R1 add R2,R0,R2 cmp R0,#10 bne maboucle str R2,100 halt
R0 est n
R1 est ta raison
R2 est le terme
le terme est placé à l'adresse 100
j'espère que c'est ça que tu chercher.
pour n = 5, R = 1, T = 15
pour R0= 5, R1=1, R2=15
cdlt,
no funciona enf hay que añadir una línea para n porque n debe ser elegido por el usuario
INP RO,2 (2 para el tipo) en función de esta variable el programa debe girar
pero no logro hacer funcionar tu programa con y sin la variable el valor enviado en la memoria 100 es falso me envían 55 .
ps: he indentado correctamente así como ajustado las mayúsculas
INP RO,2 (2 para el tipo) en función de esta variable el programa debe girar
pero no logro hacer funcionar tu programa con y sin la variable el valor enviado en la memoria 100 es falso me envían 55 .
ps: he indentado correctamente así como ajustado las mayúsculas
Sí, devuelve 55 porque hago para n = 10
n se encuentra en el opcode (offset 6 de EIP (PC)):
no mayúsculas o minúsculas esto no cambiará nada, todo depende si el compilador distingue pero aquí no.
para N = 10, R = 1, T = 55
pero espera voy a intentar iniciar en otro registro R3 tu valor n antes del bucle y recuperarlo en la comparación.
estoy en el trabajo voy a mirar en 1 hora. ¿cuándo necesitas que lo entregue?
n se encuentra en el opcode (offset 6 de EIP (PC)):
cmp R0,#10
no mayúsculas o minúsculas esto no cambiará nada, todo depende si el compilador distingue pero aquí no.
para N = 10, R = 1, T = 55
pero espera voy a intentar iniciar en otro registro R3 tu valor n antes del bucle y recuperarlo en la comparación.
estoy en el trabajo voy a mirar en 1 hora. ¿cuándo necesitas que lo entregue?

no sabría ayudarte, lo siento. ¿Por qué has elegido ese emulador en especial? ¿Ha sido impuesto?
¿Puedes, por favor, enviar el enunciado completo de todas formas?
Bien cordialmente,