Skip to content

Operations on RECORDs inconsistent with MASM #230

@640-KB

Description

@640-KB

I'm working on a fairly large project written entirely for MASM and looking for a modern alternative assembler to recommend. UASM looks great, though there are a few issues with behavior that isn't consistent with MASM.

Notably, it will not allow any type of operations within or after an inline RECORD literal definition. For example,

DBW		RECORD	hibyte:8, lobyte:8
COLOR 	RECORD  	blink:1, back:3, intense:1, fore:3

    mov  ax, DBW < 0AH, ' ' >		 ; fails with Error A2065: Constant expected
    mov  ax, ( DBW < 0AH, 20H > )    ; fails with Error A2151: Missing operator in expression
    mov  ax, DBW < 0AH, 20H > + 1    ; fails with Error A2210: Syntax error: + 1
    mov  al, high DBW < 0AH, 20H >   ; fails with Error A2151: Missing operator in expression
    mov  ax, DBW < COLOR<>, 12H >    ; fails with Error A2210: Syntax error:   , 10h 

All of these are valid and work on MASM 5.x, 6.x and TASM 3.

This is using UASM v2.57, Aug 9 2024, uasm64 for Windows.

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions