SlideServe
Menu
Préférences
© SlideServe · v2026

Macros

moanna avatar
12 diapositives · 341 Views · Sep 07, 2014

Macros. Covers chapter 8, pages 300 – 314. Run-time vs. Assemble-time. Almost everything but the main body of an assembly-language program deals with assemble-time Header Equates Data Closing For the most part, the only run-time portion is the body. Run-time vs. Assemble-time (cont.).

Macros - slide 1
01 / 12Macros
1 / 17

Télécharger la présentation

Macros
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Macros Covers chapter 8, pages 300 – 314

  2. Run-time vs. Assemble-time • Almost everything but the main body of an assembly-language program deals with assemble-time • Header • Equates • Data • Closing • For the most part, the only run-time portion is the body

  3. Run-time vs. Assemble-time (cont.) • Programming the assembler • Directives – instructions to the assembler on how or what to assemble • Macros – programmer-defined directives

  4. Macros • Macros exist to • avoid repetition (or avoid typing) • increase clarity • avoid function call overhead • Macros work by substitution • Types of macros • Replacing • Repeating

  5. Replacing Macros • Syntax: MACRO <macro name> <parameters> <code or other macros> ENDM <macro name> • Example: MACRO Terminate mov ah, 04Ch mov al, [exCode] int 21h ENDM Terminate • Example program term.asm

  6. .lst File • Created by the /l tasm command-line switch • Contains everything but the kitchen sink: • program code • machine code • expanded macros • symbol table • macro table • group and segment table • Extremely useful for debugging code with macros

  7. Parameters • Formal parameters • only exist within the macro • do not represent immediate values or offsets • are text-replaced • Example: MACRO Inc2 v1 inc v1 inc v1 ENDM Inc2 • Example program inc2.asm

  8. Parameters (cont.) • Actual parameters are the text that is actually used when substituting the macro • Example: Inc2 ax • The text “ax” is the actual parameter • Example program shleft.asm

  9. Parameter Modifiers • Actual parameters • <> - forces parameter to contain spaces • % - forces evaluation first (use with “()”) • ! – “escapes” other two • Formal parameters • & - recognize next word as a parameter • Example program shleft2.asm • Example program asciiz.asm

  10. Repeating Macros • IRP – Instruction RePeat • Syntax: IRP <formal param>, <element, element, …> <instruction> ENDM • Repeats the instruction (in the source code itself) for every element • Example programs save.asm and save2.asm

  11. Local Labels • Consider the following: MACRO IncNum op, count push cx mov cx, count @@Back: inc op loop @@Back pop cx ENDM IncNum

  12. Local Labels (cont.) • The LOCAL directive solves the problem: MACRO IncNum op, count LOCAL @@Back push cx mov cx, count @@Back: inc op loop @@Back pop cx ENDM IncNum