tutorialspoint tutorial español assembler assembly x86 nasm

assembly - tutorial - ¿Qué hace la instrucción de montaje de ORG?



nasm tutorial español (5)

¿alguien puede darme una descripción exhaustiva sobre la directiva ORG?
¿Cuándo y por qué se usa en las aplicaciones escritas de ensamblaje?

Usando Nasm en x86 o AMD64.


ORG es simplemente una indicación sobre dónde colocar la siguiente pieza de código / datos, relacionada con el segmento actual.

No sirve de nada usarlo para direcciones fijas, ya que la dirección final depende del segmento que no se conoce en el momento del ensamblaje.


ORG establece la ubicación desde donde se espera que cargue su programa. Al cargar este programa a una ubicación diferente, la dirección de memoria incorrecta será rechazada y causará problemas.


ORG se usa para configurar el contador de ubicación del ensamblador. Esto puede o no traducirse a una dirección de carga en el momento del enlace. Se puede usar para definir direcciones absolutas, por ejemplo, al definir algo así como vectores de interrupción que pueden necesitar una dirección fija, o puede usarse para introducir relleno o generar una alineación específica para el siguiente código.


es la ubicación en la memoria en la que desea que se cargue el programa binario, si corresponde.

Prefiero no usar org, y solo emitir código de operación / valor directamente al hardware. siempre puede almacenar valores en ax y transferir entre bx, cx, dx.

Estoy escribiendo mi propio ensamblador para entregar código de operación / valor sin tener que preocuparme de enviarlo primero a la memoria antes de ejecutar,

Es mucho más rápido simplemente ejecutar códigos de operación en el momento en que se están leyendo, en lugar de tratar de almacenarlos en memoria caché arriesgando la sobrecarga de la pila que podría quemar tu CPU


During the assemble time ORG directive resets the MLC (memory location counter) to the address specified in the ORG directive.

Sintaxis: nota ORG: puede ser un valor absoluto sin signo o cualquier símbolo o símbolo +.

ejemplo: - para observar el funcionamiento de esta instrucción, necesita una lista de montaje que utilice la directiva ORG.

ubicación
0000A4 00 89 TAB DC 256AL1 (* - TAB)
0001A4 00000194 90 ORG TAB + 240
000194 F0F1F2F3F4F5F6F7 91 DC C''1234567 ''

Aquí en el gráfico anterior, el símbolo TAB está asignado a la dirección MLC 0A4. en la siguiente instrucción, ORG establece la ubicación de dirección de MLC a TAB + 240 que es x''194 ''(~ x''A4'' + 240 en decimal). básicamente esta configuración es configurar una tabla con longitud 256 y desde la ubicación 240 para almacenar algunas constantes de caracteres para que pueda usarlo para la instrucción TR.