• Home
  • Install
  • Cosmos Website
  • Articles
  • Cosmos
  • X#
  • IL2CPU
Show / Hide Table of Contents
  • XSharp
    • AsmGenerator
    • AsmGenerator.FlagBool
    • Compiler
    • Compiler.Block
    • Compiler.BlockList
    • Compiler.BlockType
    • Extensions
    • Parser
    • Parser.CharType
    • Token
    • TokenList
    • TokenPatterns
    • TokenPatterns.Block
    • TokenPatterns.Blocks
    • TokenPatterns.CodeFunc
    • TokenPatterns.Pattern
    • TokenType
    • XS
    • XS.FPU
    • XS.SSE
    • XS.SSE2
    • XS.SSE3
    • XSRegisters
    • XSRegisters.Register
    • XSRegisters.Register16
    • XSRegisters.Register32
    • XSRegisters.Register8
    • XSRegisters.RegisterFPU
    • XSRegisters.RegisterSegment
    • XSRegisters.RegisterSize
    • XSRegisters.RegisterXMM
  • XSharp.Assembler
    • Assembler
    • AssemblerMethod
    • BaseAssemblerElement
    • Comment
    • DataEndIfDefined
    • DataIfDefined
    • DataIfNotDefined
    • DataMember
    • Define
    • ElementReference
    • Else
    • EndIfDefined
    • IDefine
    • IEndIfDefined
    • IfDefined
    • IfNotDefined
    • IIfDefined
    • IIfNotDefined
    • InfraExtensions
    • Instruction
    • Label
    • LiteralAssemblerCode
    • OpCodeAttribute
    • TypeComparer
  • XSharp.Assembler.x86
    • Add
    • AddWithCarry
    • And
    • Call
    • ClearInterruptFlag
    • ClrCarryFlag
    • ClrDirFlag
    • CmpXchg
    • Compare
    • ConditionalJump
    • ConditionalMove
    • ConditionalTestEnum
    • ConvByteToWord
    • CpuId
    • DebugNoop
    • Dec
    • Divide
    • ExternalLabel
    • Halt
    • IDivide
    • IInstructionWithArgument
    • IInstructionWithCondition
    • IInstructionWithDestination
    • IInstructionWithPrefix
    • IInstructionWithSize
    • IInstructionWithSource
    • Imul
    • INC
    • InfraExtensions
    • InFromDX
    • Instruction
    • Instruction.InstructionSize
    • Instruction.InstructionSizes
    • Instruction.OperandMemoryKinds
    • InstructionPrefixes
    • InstructionWithDestination
    • InstructionWithDestinationAndSize
    • InstructionWithDestinationAndSource
    • InstructionWithDestinationAndSourceAndArgument
    • InstructionWithDestinationAndSourceAndSize
    • InstructionWithSize
    • INT
    • INT1
    • INT3
    • Interrupt
    • IRET
    • Jump
    • JumpBase
    • JumpToSegment
    • Lea
    • Lgdt
    • Lidt
    • LoadStatusFlags
    • Mov
    • MoveCR
    • MoveD
    • MoveSignExtend
    • MoveToDR6
    • MoveZeroExtend
    • Movs
    • Multiply
    • Neg
    • Noop
    • Not
    • Or
    • OutToDX
    • Pop
    • Popad
    • Popfd
    • Push
    • Pushad
    • Pushfd
    • Rdmsr
    • Rdtsc
    • Registers
    • RegistersEnum
    • Return
    • RotateLeft
    • RotateRight
    • RotateThroughCarryRight
    • Scas
    • SetByteOnCondition
    • ShiftLeft
    • ShiftLeftArithmetic
    • ShiftLeftDouble
    • ShiftRight
    • ShiftRightArithmetic
    • ShiftRightDouble
    • SignExtendAX
    • Sti
    • Stos
    • Sub
    • SubWithCarry
    • Test
    • Xchg
    • Xor
  • XSharp.Assembler.x86.SSE
    • AddPD
    • AddSD
    • AddSS
    • AndPD
    • AndPS
    • ComparePD
    • ComparePS
    • ComparePseudoOpcodes
    • CompareSD
    • CompareSS
    • ConvertPD2DQAndTruncate
    • ConvertSD2SI
    • ConvertSD2SIAndTruncate
    • ConvertSD2SS
    • ConvertSI2SD
    • ConvertSI2SS
    • ConvertSS2SD
    • ConvertSS2SI
    • ConvertSS2SIAndTruncate
    • DivPD
    • DivPS
    • DivSD
    • DivSS
    • InstructionWithDestinationAndSourceAndPseudoOpcodes
    • MaxSS
    • MinSS
    • MoveAPD
    • MoveAPS
    • MoveDoubleAndDuplicate
    • MoveDoubleAndDupplicate
    • MoveDQA
    • MoveDQU
    • MoveHLPD
    • MoveHLPS
    • MoveHPD
    • MoveHPS
    • MoveLHPS
    • MoveLPD
    • MoveQ
    • MoveSD
    • MoveSS
    • MoveUPD
    • MoveUPS
    • MulPD
    • MulPS
    • MulSD
    • MulSS
    • OrPS
    • Por
    • Psrld
    • Shufps
    • SqrtScalardDouble
    • SSEInit
    • SubPD
    • SubPS
    • SubSD
    • SubSS
    • UnpackLowDouble
    • XorPD
    • XorPS
  • XSharp.Assembler.x86.X86
    • Cmps
  • XSharp.Assembler.x86.X86.SSE
    • AddPS
  • XSharp.Assembler.x86.X86.x87
    • FloatCompareAnd2Pop
    • FloatPushOne
    • FloatPushZero
    • FloatUCompareAnd2Pop
  • XSharp.Assembler.x86.x87
    • FloatABS
    • FloatAdd
    • FloatAddAndPop
    • FloatClearEx
    • FloatCompare
    • FloatCompareAndPop
    • FloatCompareAndSet
    • FloatCompareAndSetAndPop
    • FloatCompareOrderAndSetAndPop
    • FloatCompareOrderSetAndPop
    • FloatConditionalMoveTestEnum
    • FloatCosine
    • FloatDecTopPointer
    • FloatDivide
    • FloatDivideAndPop
    • FloatDivideAndPopReverse
    • FloatDivideReverse
    • FloatFree
    • FloatIncTopPointer
    • FloatInit
    • FloatLoad
    • FloatMul
    • FloatMulAndPop
    • FloatNegate
    • FloatPop
    • FloatPRem
    • FloatPRem1
    • FloatRound
    • FloatSine
    • FloatSqrt
    • FloatStore
    • FloatStoreAndPop
    • FloatSub
    • FloatSubAndPop
    • FloatSubAndPopReverse
    • FloatSubReverse
    • FloatTan
    • FloatTest
    • FloatUCompare
    • FloatUCompareAndPop
    • FloatXchg
    • FXSave
    • FXStore
    • IntAdd
    • IntCompare
    • IntCompareAndPop
    • IntDiv
    • IntDivReverse
    • IntLoad
    • IntMul
    • IntStore
    • IntStoreAndPop
    • IntStoreWithTrunc
    • IntSub
    • IntSubReverse
  • XSharp.Tokens
    • AsKeyword
    • Compare
    • Compare<TLeftValueType, TComparatorType, TRightValueType>
    • CompareConstConst
    • CompareConstInt16
    • CompareConstInt32
    • CompareConstInt8
    • CompareConstVar
    • CompareConstVarAddr
    • CompareInt16Const
    • CompareInt16Int16
    • CompareInt16Var
    • CompareInt32Const
    • CompareInt32Int32
    • CompareInt32Var
    • CompareInt32VarAddr
    • CompareInt8Const
    • CompareInt8Int8
    • CompareInt8Var
    • CompareMem<TLeftValueType, TComparatorType, TRightValueType>
    • CompareReg08Const
    • CompareReg08Reg08
    • CompareReg08Var
    • CompareReg16Const
    • CompareReg16Int16
    • CompareReg16Reg16
    • CompareReg16Var
    • CompareReg32Const
    • CompareReg32Int32
    • CompareReg32Reg32
    • CompareReg32Var
    • CompareReg8Int8
    • CompareRegConst
    • CompareRegVar
    • CompareRegVarAddr
    • CompareVar
    • CompareVarAddrConst
    • CompareVarAddrInt32
    • CompareVarAddrVar
    • CompareVarAddrVarAddr
    • CompareVarConst
    • CompareVarInt16
    • CompareVarInt32
    • CompareVarInt8
    • CompareVarVar
    • CompareVarVarAddr
    • CompareWithMem
    • Const
    • ConstKeyword
    • FunctionKeyword
    • GotoKeyword
    • Identifier
    • If
    • Int08u
    • Int16u
    • Int32u
    • Interrupt
    • NamespaceKeyword
    • NOP
    • Num
    • OpBitwise
    • OpComment
    • OpCompare
    • OpIncDec
    • OpInclude
    • OpLiteral
    • OpMath
    • OpPureComparators
    • OpRotate
    • OpShift
    • PopAll
    • PortKeyword
    • PushAll
    • Reg
    • Reg08
    • Reg16
    • Reg32
    • Repeat
    • Return
    • Size
    • TestKeyword
    • Times
    • Variable
    • VariableAddress
    • VarKeyword
    • While
    • ZeroParamOp
  • XSharp.x86
    • Map
    • OpCode
    • Register
    • Register.Names
  • XSharp.x86.Assemblers
    • Assembler
    • NASM
  • XSharp.x86.Emitters
    • AllEmitters
    • Assignments
    • BitwiseEmitters
    • Branching
    • Comments
    • Emitters
    • IncrementDecrement
    • Math
    • Namespace
    • Ports
    • PushPop
    • ShiftRotate
    • Test
    • ZeroParamOps
  • XSharp.x86.Params
    • Address
    • i08u
    • i16u
    • i32u
    • Identifier
    • List
    • MemoryAddress
    • Num
    • Param
    • Reg
    • Reg08
    • Reg16
    • Reg32
    • RegisterAddress
    • Root
    • Size

Class AsmGenerator

Inheritance
System.Object
AsmGenerator
Namespace: XSharp
Assembly: XSharp.dll
Syntax
public class AsmGenerator : object

Fields

| Improve this Doc View Source

EmitSourceCode

Declaration
public bool EmitSourceCode
Field Value
Type Description
System.Boolean
| Improve this Doc View Source

EmitUserComments

Should we keep the user comments in the generated target assembly program ?

Declaration
public bool EmitUserComments
Field Value
Type Description
System.Boolean
| Improve this Doc View Source

mLineNo

Declaration
protected int mLineNo
Field Value
Type Description
System.Int32
| Improve this Doc View Source

mPathname

Declaration
protected string mPathname
Field Value
Type Description
System.String
| Improve this Doc View Source

mPatterns

Declaration
protected TokenPatterns mPatterns
Field Value
Type Description
TokenPatterns

Methods

| Improve this Doc View Source

Generate(String)

Parse the input X# source code file and generate the matching target assembly language.

Declaration
public Assembler Generate(string aSrcPathname)
Parameters
Type Name Description
System.String aSrcPathname

X# source code file.

Returns
Type Description
Assembler

The resulting target assembler content. The returned object contains a code and a data block.

| Improve this Doc View Source

Generate(TextReader)

Parse the input X# source code file and generate the matching target assembly language.

Declaration
public Assembler Generate(TextReader aReader)
Parameters
Type Name Description
TextReader aReader

X# source code reader.

Returns
Type Description
Assembler

The resulting target assembler content. The returned object contains a code and a data block.

| Improve this Doc View Source

Generate(TextReader, TextWriter)

Parse the input X# source code from the given reader and write both target assembler code and target assembler data in their respective writers.

Declaration
public void Generate(TextReader aIn, TextWriter aOut)
Parameters
Type Name Description
TextReader aIn

A reader to acquire X# source code from.

TextWriter aOut

A writer that will receive target assembler data.

| Improve this Doc View Source

GenerateToFile(String, TextReader, TextWriter)

Declaration
public void GenerateToFile(string aFileName, TextReader aSourceReader, TextWriter aDestinationWriter)
Parameters
Type Name Description
System.String aFileName
TextReader aSourceReader
TextWriter aDestinationWriter
| Improve this Doc View Source

GenerateToFiles(String)

Parse the input X# source code file and generate two new files with target assembly language. The two generated files contain target assembler source and target assembler data respectively.

Declaration
public void GenerateToFiles(string aSrcPathname)
Parameters
Type Name Description
System.String aSrcPathname

X# source code file.

| Improve this Doc View Source

ProcessLine(String, Int32)

Process a single X# source code line and translate it into the target assembler syntax.

Declaration
protected void ProcessLine(string aLine, int aLineNo)
Parameters
Type Name Description
System.String aLine

The processed X# source code line.

System.Int32 aLineNo

Line number for debugging and diagnostic messages.

  • Improve this Doc
  • View Source
☀
☾
In This Article
Back to top
☀
☾