home *** CD-ROM | disk | FTP | other *** search
/ MS DOS Archives 1 / MS-DOS_Archives_Volume_One_Walnut_Creek.iso / msdos / at / atperf.arc / MASM.INC < prev    next >
Text File  |  1988-02-22  |  778b  |  44 lines

  1.  
  2. .xcref REGSAVE,REGREST,INSTR_ALIGN
  3. REGSAVE  macro     LIST        ; Register save macro
  4.  
  5.      irp     XX,<LIST>
  6.      push     XX
  7.      endm
  8.  
  9.      endm            ; REGSAVE
  10.  
  11. REGREST  macro     LIST        ; Register restore macro
  12.  
  13.      irp     XX,<LIST>
  14.      pop     XX
  15.      endm
  16.  
  17.      endm            ; REGREST
  18.  
  19. INSTR_ALIGN macro        ; Instruction alignment
  20.  
  21.      nop
  22.      nop
  23.      nop
  24.  
  25.      endm            ; INSTR_ALIGN
  26.  
  27. ALIGN     macro     NAME,PREF
  28.      local     L1
  29.  
  30. ; Align instructions on dword boundary
  31.  
  32.      test     LCL_FLAG,@LCL_&NAME ; Already relocated?
  33.      jnz     L1        ; Yes
  34.  
  35.      mov     ax,PREF&D-PREF&L ; Get length of alignment area
  36.      push     ax        ; Pass as argument #1
  37.      lea     ax,PREF&L    ; Get starting address
  38.      push     ax        ; Pass as argument #2
  39.      call     DD_ALIGN    ; Align the instructions
  40.  
  41.      or     LCL_FLAG,@LCL_&NAME ; Mark as relocated
  42. L1:
  43.      endm
  44.