Author Topic: x86 assembler with asm51-ish syntax?  (Read 16577 times)

nobody

  • Guest
x86 assembler with asm51-ish syntax?
« on: August 30, 2007, 02:58:02 PM »
First, I want to say that I've been trying to find the perfect x86 assembler for me, and NASM is the closest I've come so far.  I wanted something that was simple, to the point, command-line driven, didn't come with a lot of fluff - I'm pretty satisfied that NASM is just that!
However, this might sound a little OCD, but I'll never know unless I ask and it doesn't harm anything.
I first entered the assembly language world last year with programming 8051 microcontrollers.  Now, I'm trying to make the leap to x86 programming, but I'm used to the ASM51 syntax and, while I could tolerate the differences if I have to, the ASM51 syntax just makes more sense to me.  Certain things are expressed very explicitly, and I greatly appreciate that.
Does anybody know off the top of their head of an x86 assembler that has syntax looking like this?

; (I'm aware that this program doesn't really do anything.
; I threw together pieces of some of my previous projects
; simply to use as an example.)

$MODR2

;---------------------------------------------------------------
; Symbol Declarations

T0EXT   EQU R0

;---------------------------------------------------------------
; Interrupt Service Routines

ORG 0000H
        LJMP INIT

ORG 000BH
T0ISR:  INC T0EXT
        RETI

;---------------------------------------------------------------
; Inline Statements

INIT:   MOV IP0,#00000011B
        MOV IEN0,#10000010B
        MOV TMOD,#00000010B
        MOV TL0,#-250
        MOV TH0,#-250
        SETB TR0
        MOV A,#00H

MAIN:   ACALL DISPLAY
        ACALL ONESEC
        INC A
        SJMP MAIN

;---------------------------------------------------------------
; Subroutine Definitions

ONESEC: MOV T0EXT,#-250
        MOV R2,#16
LOOP:   CJNE T0EXT,#00H,$
        MOV T0EXT,#-250
        DJNZ R2,LOOP
        RET

DISPLAY:MOV DPTR,#SVNSEG
        MOV R2,A
        ANL A,#0FH
        MOVC A,@A+DPTR
        MOV LSD,A
        MOV A,#0F0H
        ANL A,R2
        SWAP A
        MOVC A,@A+DPTR
        MOV MSD,A
        MOV A,R2
        MOV DPTR,#FAHREN
        RET

SVNSEG: DB 40H,79H,24H,30H,19H,12H,03H,78H
        DB 00H,18H,27H,33H,1DH,16H,07H,7FH
END

Like I said: I know it's really picky, but I've come to really enjoy the little details such as the "#" prefixes for immediate values, "@" for indirect addressing, "END" to declare the end of the program, etc.  Of course I can live without it, but I might as well ask!  If anybody knows of something resembling what I might be looking for, I'd be very grateful!
Thanks.

nobody

  • Guest
Re: x86 assembler with asm51-ish syntax?
« Reply #1 on: August 30, 2007, 04:38:32 PM »
SORRY, NO.

You have cca 3 possibilities:

1. MA$M
2. FASM/NASM/YASM :-)
3. GAS/ATT

or 4:

1.5 TASM IDEAL