The MASM2C® translator is a software tool that will convert existing MASM programs to "C". The powerful MASM2C® translator accepts MASM programs, checks their syntax and outputs C code. The comments are move transparently from the source file to the target file. Any built-in functions for math, string manipulation and I/O in MASM are converted to calls to external procedures (Get free sample translation) .
The MASM2C® translator contains a syntax analyzer, an MASM to tertiary converter, and a tertiary to "C converter. The syntax analyzer scans the MASM input file for syntactic errors and generates a listing file of the MASM program. Any syntactic errors will be flagged with detailed English messages in the listing file. If no errors are encountered, the MASM input file is converted to tertiary language. Then the tertiary file is checked and, if no errors are detected, it is converted to "C". A command line control is provided to allow translation with errors in the source file. This is helpful when translating code fragments that are not complete programs.
The translation of the MASM source language into an intermediate tertiary language ensures the logical equivalence between the source and target languages. This sophisticated tertiary language, which is common to our entire family of translators, allows complex mapping from source language to the target. The tertiary language is automatically converted to "C" while maintaining the logical equivalence between the output "C" program and the input MASM program.
The "C" output file will be generated in
- Compact and portable K&R C
- Standard ANSI C code
as selected by a command line option.
ALIGN, ALPHA, ASSUME, CODE, COMM, COMMENT, CONST,
CREF, DATA, DATAQ, DOSSEG, DB, DW,
DBS, DWS, DD, DF,
DQ, DT, ELSE, END, ENDIF, ENDM, ENDP, ENDS, ENDSEG,
EQU, ERR, ERR1, ERR2, ERRB, ERRDEF, ERRDIF,
ERRNZ, EVEN, EXITM, EXTRN, FARDATA, FARDATAQ,
GROUP, IF, IF1, IF2, IFB, IFDEF, IFDIF, IFDIFI,
IFE, IFIDN, IFIDNI, IF IFNB, IFNDEF, INCLUDE,
INCLUDELIB, IRP, IRPC, LABEL, LALL, LFCOND,
LIST, LOCAL, MACRO, MACRO_LINE MODEL, NAME, ORG, POUT,
PAGE, PAGEP, PROC, PROG, PUBLIC, PURGE, RADIX, RECORD, REPT,
SALL, SEGMENT, SEQ, SFCOND, STACK, STRUC, SUBTTL, TFCOND,
TITLE, XALL, XCREF, XLIST, NOTHING, USE16, USE32,
MASM INSTRUCTION :
AAA, AAD, AAM, AAS, ABS, AH, AL, ASSUME, AT, AX, BH, BL, BP, BX, BYTE, CALL, CBW, CH, CL, CLC, CLD, CLI, CMPS, CODEMARCO, COMMON, CS, CWD, CX, DAS, DD, DEC, DEFINE, DH, DIV, DL, DUP, DWORD, DX, ELSE, ELSEIF, ENDIF, ENDM, ENDP, ENDS, EQS, ES, ESC, EVAL, EXIT, FAR, GES, GROUP, GTS, IDIV, IMUL, INC, INCHAR, INT, INTO, IRET, JA, JAE, JB, JBE, JCXZ, JE, JG, JGE, JL, JLE, JNA, JNAE, JNR, JNBE, JNE, JNG, JNGE, JNL, JNLE, JNO, JNP, JNS, JO, JS, JUMP, LABEL, LAHF, LDS, LEA, LEN, LENGTH, LES, LOCK, LODS, LOOP, LOOPE, LOOPNE, LOOPNZ, LOOPZ, LTS, MASK, MATCH, METACHAR, MODRM, MOVS, MUL, NEAR, NEG, NES, MIL, NOSEGFIX, NOTHING, OFFSET, PARA, POPF, PREFX, PROC, PROCLEN, PIR, PURGE, PUSHF, RCL, RCR, RECORD, RELB, RELW, REP, REPE, REPEAT, REPNE, REPNZ, REPZ, ROL, SAHF, SAL, SAR, SCAS, SEG, SEGFIX, SEGMENT, SHORT, SI, SIZE, SS, STD, STI, STOS, STRUC, SUBSTR, TEST, THIS, TYPE, WAIT, WHILE, WIDTH, WORD, XLAT
AH BH CH DH
AL BL CL DL
AX BX CX DX
EAX EBX ECX EDX
SP BP SI DI
ESP EBP ESI EDI
CS DS SS ES
CR0 CR1 CR2 CR3 CR4 CR5 CR6 CR7
DR0 DR1 DR2 DR3 DR4 DR5 DR6 DR7
TR0 TR1 TR2 TR3 TR4 TR5 TR6 TR7