Pregunta

Estoy empezando un poco de experimentación en escribir un núcleo y divertirse haciéndolo. Tengo el básico sistema de arranque y de hecho las siguientes directivas:

[BITS 16]
[ORG 0x0000]

En el tutorial del núcleo, sin embargo, que comienza con:

[ORG 0x0000]
[BITS 16]

Me preguntaba si el orden en que se dan estas directivas hace la diferencia? Estoy usando NASM versión 2.06rc2, OpenSUSE 11.2

¿Fue útil?

Solución

La última NASM es en la versión 2.08, ya juzgar por la documentación sobre el Directiva BITS ..

La orden no debe hacer una diferencia, ya que dicen NASM para generar un archivo con ciertas condiciones, tales como el uso de 16 bits y el tratamiento de inicio en cero. A partir de ella, NASM parece ser lo suficientemente inteligente como para saber qué tipo de salida que va a generar.

Otros consejos

No importa cuál es lo primero, pero en general sigue este orden en mis programas:

        cpu 8086
        bits 16
        org 256

(Debido bits 16 es el valor por defecto para el formato de salida de bin NASM por lo general no lo especifica explícitamente, excepto cuando hay algunas partes bits 32 a un archivo.)

Por cierto, las formas con soportes son los de nivel inferior, formas no "usuario" de estas directivas. https://www.nasm.us/xdoc/ 2.14.02 / html / nasmdoc6.html # sección-6,1

  

La directiva BITS tiene una forma primitiva exactamente equivalente, [BITS 16], [BITS 32] y [64 BITS]. El formulario de nivel de usuario es un macro que no tiene otra función que llame a la forma primitiva.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top