Conversión del programa de ensamblaje al lenguaje de máquinas de bajo nivel -- assembly campo con compiler-construction campo con machine-code camp Relacionados El problema

Conversion from assembly program to low-level machine language


0
vote

problema

Español

Mientras estudiaba el diseño del compilador a través de un libro en línea de Google-Books, referenciado como Compiler Design By A.A.Puntambekar , me quedé atrapado en una línea. En realidad, tengo más curiosidad por saber el detalle interno.

El ensamblador convierte el programa de ensamblaje a la máquina de bajo nivel Idioma usando dos pases. Un pase significa un escaneo completo de la entrada programa. El final de la segunda pasada es el código de máquina reubicable.

¿Por qué los 2 pasan por la conversión y cuáles son las fases involucradas como el análisis léxico, el análisis de sintaxis, etc. Mientras la conversión del ensamblaje al código de máquina? Tengo mucho menos / no tengo idea de eso.

Si alguien aquí le gustaría describir esos dos pases o vincularse a algunos buenos recursos, le estaría agradecido a él / ella

Original en ingles

While studying COMPILER-DESIGN through an online book from Google-Books,referenced as Compiler Design By A.A.Puntambekar, I got stuck across a line. Actually, I am more curious to know the inner-detail.

The assembler converts the assembly-program to low-level machine language using two passes. A pass means one complete scan of the input program. The end of the second pass is the relocatable machine code.

Why the 2 passes for conversion and what are the phases involved like lexical analysis,syntax analysis,etc while conversion from assembly to machine-code??? I have very less/no idea about it.

If someone over here would like to describe those two-passes or link out to some good resources, I'd be thankful to him/her

        
         
         

Lista de respuestas

4
 
vote
vote
La mejor respuesta
 

El compilador tiene que reemplazar las etiquetas por sus compensaciones. Si usa el nombre de una etiqueta en una línea anterior que la etiqueta en sí, el compilador tendrá que repasar el programa para insertar el desplazamiento.

 

The compiler has to replace labels by their offsets. If you use the name of a label in a earlier line than the label itself, the compiler will have to repass the program for inserting the offset.

 
 
     
     

Relacionados problema

10  Compilando lenguaje de alto nivel al código de máquina  ( Compiling high level language to machine code ) 
Después de leer algunas respuestas del sitio y ver algunas fuentes, pensé que el compilador convierte el lenguaje de alto nivel (C ++ como ejemplo) al código ...

1  Conjunto de ingeniero inversa  ( Reverse engineer assembly ) 
Soy un nuevo arrancador para la ingeniería inversa y deseo aprender más, intenté desmontar un EXE objetivo donde me encuentro con algunas funciones que realme...

1  X64 Operación 'Agregar Imm8 a R / M8'  ( X64 operation add imm8 to r m8 ) 
La versión M8 de esta instrucción tiene un valor de 8 bits y lo agrega a una dirección en la memoria. ¿Es la dirección y el valor de la ubicación de la direcc...

8  ¿Qué convierte el lenguaje de montaje al código de máquina?  ( What converts assembly language to machine code ) 
Soy nuevo en la programación y empecé con el lenguaje C ++, por lo que yo sé lenguaje C ++ se convierte en lenguaje ensamblador por el compilador de C ++ (Ej:...

0  Emitiendo una pseudo-instrucción durante la relajación  ( Emitting a pseudo instruction during relaxation ) 
En un backend LLVM, me gustaría emitir una pseudo-instrucción como la relajación de una instrucción real (no pseudo-). El problema es que no puedo encontrar u...

3  ¿Cómo puedo convertir el código de máquina Intel 80386 al lenguaje de montaje?  ( How might i convert intel 80386 machine code to assembly language ) 
Me han dado la siguiente tarea: Considere la siguiente secuencia de valores hexadecimales: 55 89 E5 83 EC 08 83 E4 F0 31 C9 BA 01 00 00 00 00 00 00 01 D1...

24  Cómo leer la notación de Intel Opcode  ( How to read the intel opcode notation ) 
Estoy leyendo un poco de material sobre los opciones opcionales de Intel de instrucciones de montaje, pero no puedo entender qué significa que sigue al byte d...

1  ¿Cómo decir cuántas instrucciones simbólicas están representadas en el código de máquina hexagonal? [duplicar]  ( How to tell how many symbolic instructions are represented in hex machine code ) 
Esta pregunta ya tiene respuestas aquí : x86 Asamblea: ¿Cómo saben los disfrazadores cómo romper las...

59  ¿Cómo escribir y ejecutar código de máquina puro manualmente sin contenedores como EXE o ELF?  ( How to write and execute pure machine code manually without containers like exe ) 
Solo necesito una demostración de Hello World para ver cómo funciona realmente el código de máquina. Aunque Windows ' exe y linux' elf está cerca del cód...

18  ¿Cómo funciona la instrucción MOV de ARM con un número grande como el segundo operando?  ( How can arms mov instruction work with a large number as the second operand ) 
Acabo de comenzar a estudiar el lenguaje de ensamblaje del brazo y no estoy claro cómo usar MOV para transferir un número inmediato en un registro. Del manu...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos