Saltar al contenido principal
LibreTexts Español

2.3: Directivas de ensamblador

  • Page ID
    80642
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Las directivas de ensamblador son instrucciones al ensamblador para tomar alguna acción o cambiar una configuración. Las directivas de ensamblador no representan instrucciones y no se traducen al código de máquina.

    Para este ensamblador, todas las directivas comienzan con un “.” o “#” (el comentario es un #), y la directiva debe existir en una línea separada de cualquier otra directiva de ensamblador o instrucción de ensamblador. Hay 4 directivas de ensamblador y la etiqueta de comentario.

    • .text — La directiva.text le dice al ensamblador que la información que sigue es el texto del programa (instrucciones de montaje), y el código de máquina traducido debe escribirse en el segmento de texto de la memoria.
    • .data — La directiva.data le dice al ensamblador que la información que sigue son datos del programa. La información que sigue a una instrucción .data será valores de datos, y se almacenará en el segmento de datos.
    • .label — Una etiqueta es una dirección en memoria que corresponde a una instrucción o un valor de datos. Es solo una comodidad para que el programador pueda hacer referencia a una dirección por un nombre. Se utilizará de la siguiente manera:

      .nombre de la etiqueta

      La etiqueta es una etiqueta a la que se puede hacer referencia en lugar de una dirección en cualquier instrucción de ensamblaje que pueda tomar una etiqueta/dirección. Las etiquetas y direcciones se pueden usar indistintamente.

    • .number — La directiva number le dice al ensamblador que reserve 2 bytes de memoria para un valor de datos e inicialice la memoria al valor dado. A menudo se utilizará con la directiva.label para establecer una etiqueta en un valor de memoria de 2 bytes, e inicializar el valor, como se muestra en el siguiente fragmento de código.
      .label var1
          .number 5
      

      Esta sentencia asigna espacio para la variable var1, y asigna a ese espacio en la memoria el valor 5. Los datos para esta CPU solo funcionarán con números enteros de 2 bytes (16 bits) por lo que se pueden usar valores discretos de -32768.. 32767 (inclusive). Todos los valores de datos están en decimales; el ensamblador no reconocerá los valores hexagonales.

    • # - el # (hashtag) se utiliza para especificar un comentario. Cualquier cosa en una línea que comience con un “#” es una línea de comentario e ignorada por el ensamblador.

    This page titled 2.3: Directivas de ensamblador is shared under a CC BY 4.0 license and was authored, remixed, and/or curated by Charles W. Kann III via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.