Add ljmp16 .fill and .space macros

svn path=/branches/cmake-bringup/; revision=50696
This commit is contained in:
Timo Kreuzer 2011-02-14 20:12:12 +00:00
parent e274013c30
commit 0c69202021

View file

@ -11,10 +11,12 @@
/* Allow ".name" identifiers */ /* Allow ".name" identifiers */
OPTION DOTNAME OPTION DOTNAME
#ifdef _M_IX86
.686P .686P
.XMM .XMM
.MODEL FLAT .MODEL FLAT
ASSUME CS:NOTHING, DS:NOTHING, ES:NOTHING, FS:NOTHING, GS:NOTHING ASSUME CS:NOTHING, DS:NOTHING, ES:NOTHING, FS:NOTHING, GS:NOTHING
#endif
/* Hex numbers need to be in 01ABh format */ /* Hex numbers need to be in 01ABh format */
#define HEX(x) 0##x##h #define HEX(x) 0##x##h
@ -68,11 +70,11 @@ ENDM
.code16 MACRO .code16 MACRO
ASSUME nothing ASSUME nothing
.text SEGMENT use16 .text16 SEGMENT use16
ENDM ENDM
.endcode16 MACRO .endcode16 MACRO
.text ENDS .text16 ENDS
ENDM ENDM
.bss MACRO .bss MACRO
@ -111,12 +113,33 @@ ENDM
ORG value ORG value
ENDM ENDM
.fill MACRO repeat, size, value .fill MACRO count, size, value
// FIXME REPEAT count
if (size == 1)
DB value
elseif (size == 2)
DW value
elseif (size == 4)
DD value
else
endif
ENDM
ENDM
.space MACRO count
DB 0 DUP (count)
ENDM ENDM
ljmp MACRO segment, offset ljmp MACRO segment, offset
// FIXME DB 0EAh
DD offset
DW segment
ENDM
ljmp16 MACRO segment, offset
DB 0EAh
DW offset
DW segment
ENDM ENDM
UNIMPLEMENTED MACRO name UNIMPLEMENTED MACRO name
@ -180,6 +203,10 @@ ENDM
jmp far ptr \segment:\offset jmp far ptr \segment:\offset
.endm .endm
.macro ljmp16 segment, offset
jmp far ptr \segment:\offset
.endm
/* MASM compatible EXTERN */ /* MASM compatible EXTERN */
.macro EXTERN name .macro EXTERN name
.endm .endm