RadASM 2.2.1.6 Released (2009-04-09)

Started by KetilO, April 09, 2009, 09:34:37 AM

Previous topic - Next topic

UtillMasm


NightWare

hi, previously i've used an old version of radasm, and recently installed version 2216

for colors words, cvttsi2ss, cvttpi2ps, cvtpips (or cvtpspi i don't remember) are unexisting instructions, and from what i know it's probably also the case for pavgusb
note, when changing colors it sometimes add a blank line.

now, i've really appreciated the marking of the lines currently altered, thanks for this excellent tool!

UtillMasm

another F2 bug:
invoke DialogBoxParam,hInstance,IDD_DIALOG1,NULL,addr DlgProc,NULL
  ;DlgProc proc
.386
.model flat, stdcall  ;32 bit memory model
option casemap :none  ;case sensitive
include Test Project.inc
;--------------------------------------------------------------------------------
;If you are doing source code breakpoints, this file must be included.
;You don't need it with int 3 breakpoints.
include \radasm2216\masm\inc\radbg.inc
;--------------------------------------------------------------------------------

.code

start:

invoke GetModuleHandle,NULL
mov hInstance,eax

    invoke InitCommonControls
invoke DialogBoxParam,hInstance,IDD_DIALOG1,NULL,addr DlgProc,NULL
  ;DlgProc proc
           ;this comment line not a bad guy. but....
invoke ExitProcess,0

;########################################################################

DlgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM

mov eax,uMsg
.if eax==WM_INITDIALOG

.elseif eax==WM_COMMAND
pushad
invoke GetParent,0
mov eax,1
invoke SetLastError,0
mov ebx,2
mov ecx,3
xor ebx,ebx
popad
.elseif eax==WM_CLOSE
pushad
xor eax,eax
dec eax
add eax,2
mov ebx,2
mov ecx,3
mov edx,4
mov esi,5
mov edi,6
mov ebp,7
popad
invoke EndDialog,hWin,0
.elseif eax==WM_SIZING
mov edx,lParam
mov eax,[edx].RECT.top
add eax,204
mov [edx].RECT.bottom,eax
mov eax,[edx].RECT.right
sub eax,[edx].RECT.left
.if eax>400
mov eax,[edx].RECT.left
add eax,400
mov [edx].RECT.right,eax
; mov eax,TRUE
; ret
.endif
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret

DlgProc endp

end start

Mark Jones

Nightware, add those entries to MASM.INI under the [Keywords] section. I have it defined in C5. i.e.,

[KeyWords]
;Registers
C0=AH AL AX BH BL BP BX CH CL CR0 CR2 CR3 CS CX DH DI DL DR0 DR1 DR2 DR3 DR6 DR7 DS DX EAX EBP EBX ECX EDI EDX ES ESI ESP FS GS MM0 MM1 MM2 MM3 MM4 MM5 MM6 MM7 SI SP SS ST TR3 TR4 TR5 TR6 TR7 XMM0 XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7
;Instructions
C1=ADC ADD AND ARPL BOUND BSF BSR BSWAP BT BTC BTR BTS CALL CBW CDQ CLC CLD CLI CLTS CMC CMOVA CMOVAE CMOVB CMOVBE CMOVC CMOVE CMOVG CMOVGE CMOVL CMOVLE CMOVNA CMOVNAE CMOVNB CMOVNBE CMOVNC CMOVNE CMOVNG CMOVNGE CMOVNL CMOVNLE CMOVNO CMOVNP CMOVNS CMOVNZ CMOVO CMOVP CMOVPE CMOVPO CMOVS CMOVZ CMP CMPS CMPSB CMPSD CMPSW CMPXCHG CMPXCHG8B CPUID CWD CWDE DAS DEC DIV DAA ENTER HLT IDIV IMUL IN INC INS INSB INSD INSW INT INTO INVD INVLPG IRET IRETD IRETDF IRETF JA JAE JB JBE JC JCXZ JE JECXZ JG JGE JL JLE JMP JNA JNAE JNB JNBE JNC JNE JNG JNGE JNL JNLE JNO JNP JNS JNZ JO JP JPE JPO JS JZ LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT LMSW LOCK LODS LODSB LODSD LODSW LOOP LOOPD LOOPE LOOPED LOOPEW LOOPNE LOOPNED LOOPNEW LOOPNZ LOOPNZD LOOPNZW LOOPW LOOPZ LOOPZD LOOPZW LSL LSS LTR MOV MOVS MOVSB MOVSD MOVSW MOVSX MOVZX MUL NEG NOP NOT OR OUT OUTS OUTSB OUTSD OUTSW POP POPA POPAD POPF POPFD PUSH PUSHA PUSHAD PUSHAW PUSHD PUSHF PUSHFD PUSHW RCL RCR RDMSR RDTSC REP REPE REPNE REPNZ REPZ RET RETF RETN ROL ROR RSM SAHF SAL SAR SBB SCAS SCASB SCASD SCASW SETA SETAE SETB SETBE SETC SETE SETG SETGE SETL SETLE SETNA SETNAE SETNB SETNBE SETNC SETNE SETNG SETNGE SETNL SETNLE SETNO SETNP SETNS SETNZ SETO SETP SETPE SETPO SETS SETZ SGDT SHL SHLD SHR SHRD SIDT SLDT SMSW STC STD STI STOS STOSB STOSD STOSW STR SUB TEST VERR VERW WAIT WBINVD WRMSR XADD XCHG XLAT XLATB XOR AAA AAD AAM AAS
;Instructions
C2=F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX FCMOVA FCMOVAE FCMOVB FCMOVBE FCMOVE FCMOVNA FCMOVNAE FCMOVNB FCMOVNBE FCMOVNE FCMOVNU FCMOVU FCOM FCOMI FCOMIP FCOMP FCOMPP FCOS FDECSTP FDISI FDIV FDIVP FDIVR FDIVRP FENI FFREE FIADD FICOM FICOMP FIDIV FIDIVR FILD FIMUL FINCSTP FINIT FIST FISTP FISUB FISUBR FLD FLD1 FLDCW FLDENV FLDENVD FLDENVW FLDL2E FLDL2T FLDLG2 FLDLN2 FLDPI FLDZ FMUL FMULP FNCLEX FNDISI FNENI FNINIT FNOP FNSAVE FNSAVED FNSAVEW FNSTCW FNSTENV FNSTENVD FNSTENVW FNSTSW FPATAN FPREM FPREM1 FPTAN FRNDINT FRSTOR FRSTORD FRSTORW FSAVE FSAVED FSAVEW FSCALE FSETPM FSIN FSINCOS FSQRT FST FSTCW FSTENV FSTENVD FSTENVW FSTP FSTSW FSUB FSUBP FSUBR FSUBRP FTST FUCOM FUCOMI FUCOMIP FUCOMP FUCOMPP FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1
C3=EMMS FEMMS FXRSTOR FXSAVE MOVD MOVQ PACKSSDW PACKSSWB PACKUSWB PADDB PADDD PADDSB PADDSW PADDUSB PADDUSW PADDW PAND PANDN PCMPEQB PCMPEQD PCMPEQW PCMPGTB PCMPGTD PCMPGTW PMADDWD PMULHW PMULLW POR PSLLD PSLLQ PSLLW PSRAD PSRAW PSRLD PSRLQ PSRLW PSUBB PSUBD PSUBSB PSUBSW PSUBUSB PSUBUSW PSUBW PUNPCKHBW PUNPCKHDQ PUNPCKHWD PUNPCKLBW PUNPCKLDQ PUNPCKLWD PXOR
C4=ADDPS ADDSS ANDNPS ANDPS CMPPS CMPSS COMISS CVTPI2PS CVTPS2PI CVTSI2SS CVTSS2SI CVTTPS2PI CVTTSS2SI DIVPS DIVSS LDMXCSR MASKMOVQ MAXPS MAXSS MINPS MINSS MOVAPS MOVHLPS MOVHPS MOVLHPS MOVLPS MOVMSKPS MOVNTPS MOVNTQ MOVSS MOVUPS MULPS MULSS ORPS PAVGB PAVGUSB PAVGW PEXTRW PF2ID PFACC PFADD PFCMPEQ PFCMPGE PFCMPGT PFMAX PFMIN PFMUL PFRCP PFRCPIT1 PFRCPIT2 PFRSQRT PFSUB PFSUBR PI2FD PINSRW PMAXSW PMAXUB PMINSW PMINUB PMOVMSKB PMULHRW PMULHUW PREFETCH PREFETCHNTA PREFETCHT0 PREFETCHT1 PREFETCHT2 PSADBW PSHUFW RCPPS RCPSS RDPMC RSQRTPS RSQRTSS SFENCE SHUFPS SQRTPS SQRTSS STMXCSR SUBPS SUBSS SYSCALL SYSENTER SYSEXIT SYSRET UCOMISS UNPCKHPS UNPCKLPS XORPS
C5=ADDPD ADDSD ANDNPD ANDPD CLFLUSH CMPPD COMISD CVTDQ2PD CVTDQ2PS CVTPD2DQ CVTPD2PI CVTPD2PS CVTPDPS CVTPI2PD CVTPS2DQ CVTPS2PD CVTSD2SI CVTSD2SS CVTSI2SD CVTSS2SD CVTTPD2DQ CVTTPD2PI CVTTPS2DQ CVTTPS2DQ CVTTSD2SI CVTTSI2SD CVTTSI2SS DIVPD DIVSD LFENCE MASKMOVDQU MAXPD MAXSD MFENCE MINPD MINSD MOVAPD MOVDQ2Q MOVDQA MOVDQU MOVHPD MOVLPD MOVMSKPD MOVNIG MOVNTDQ MOVNTI MOVNTPD MOVQ2DQ MOVQA MOVSQ MOVSXD MOVUPD MULPD MULSD ORPD PACKUSDW PADDQ PF2IW PFNACC PFPNACC PFRSQIT1 PI2FW PMULUDQ POPFQ PSHUFD PSHUFHW PSHUFLW PSLLDQ PSRAQ PSRLDQ PSUBQ PSWAPD PUNPCKHQDQ PUNPCKLQDQ PUSHFQ RDIVISR SHUFPD SQRTPD SQRTSD SUBPD SUBSD SWAPGS UCOMISD UNPCKHPD UNPCKLPD XORPD EXPORTS FALSE LIBRARY NULL TRUE
C6=$ ? @@ @B @F ^HWND ^LPARAM ^UINT ^WPARAM ADDR BASIC BYTE C CARRY? DWORD FAR FAR16 FORTRAN FWORD NEAR NEAR16 OVERFLOW? OWORD PARITY? PASCAL QWORD REAL10 REAL4 REAL8 SBYTE SDWORD SIGN? STDCALL SWORD SYSCALL TBYTE VARARG WORD ZERO?
;MASM Keywords (non-code producing)
C7=%OUT .186 .286 .286C .286P .287 .386 .386C .386P .387 .486 .486P .586 .686 .686p .8086 .8087 .ALPHA .CODE .CONST .CREF .DATA .DATA? .DOSSEG .ERR .ERR1 .ERR2 .ERRB .ERRDEF .ERRDIF .ERRDIFI .ERRE .ERRIDN .ERRIDNI .ERRNB .ERRNDEF .ERRNZ .EXIT .FARDATA .FARDATA? .K3D .LALL .LFCOND .LIST .LISTALL .LISTIF .LISTMACRO .LISTMACROALL .MMX .MODEL .MSFLOAT .NO87 .NOCREF .NOLIST .NOLISTIF .NOLISTMACRO .RADIX .SALL .SEQ .SFCOND .STACK .STARTUP .TFCOND .TYPE .XALL .XCREF .XLIST .XMM ALIAS ALIGN ASSUME CATSTR COMM COMMENT+ DB DD DF DOSSEG DQ DT DUP DW ECHO ELSE ELSEIF ELSEIF1 ELSEIF2 ELSEIFB ELSEIFDEF ELSEIFDIF ELSEIFDIFI ELSEIFE ELSEIFIDN ELSEIFIDNI ELSEIFNB ELSEIFNDEF END ENDIF ENDM ENDP ENDS endw EQ EQU EVEN EXITM EXTERN EXTERNDEF EXTRN FOR FORC GE GOTO GROUP GT HIGH HIGHWORD IF IF1 IF2 IFB IFDEF IFDIF IFDIFI IFE IFIDN IFIDNI IFNB IFNDEF INCLUDE- INCLUDELIB- INSTR IRP IRPC LABEL LE LENGTH LENGTHOF LOCAL LOW LOWWORD LROFFSET LT MACRO MASK MOD NAME NE OFFSET OPATTR OPTION ORG PAGE POPCONTEXT PROC PROTO PTR PUBLIC PURGE PUSHCONTEXT RECORD REPEAT REPT SEG SEGMENT SHORT SIZE SIZEOF SIZESTR STRUC STRUCT SUBSTR SUBTITLE SUBTTL TEXTEQU THIS TITLE- TYPE TYPEDEF UNION WHILE WIDTH
;MASM High Level Key Words (code producing)
C8=.BREAK .CONTINUE .ELSE .ELSEIF .ENDIF .ENDW .IF .REPEAT .UNTIL .UNTILCXZ .WHILE INVOKE
;CaseSensitive Macro Ops
C9=@CatStr @code @CodeSize @Cpu @CurSeg @data @DataSize @Date @Environ @fardata @fardata? @FileCur @FileName @InStr @Interface @Line @Model @SizeStr @stack @SubStr @Time @Version @WordSize
;RC file
C10=#define #include ACCELERATORS ALT AUTOCHECKBOX AUTORADIOBUTTON BEGIN BITMAP BLOCK CAPTION CLASS COMBOBOX CONTROL CURSOR DIALOGEX DISCARDABLE EDITTEXT EXSTYLE FALSE FILEOS FILETYPE FILEVERSION FONT GROUPBOX ICON LISTBOX LTEXT MENU MENUITEM NOINVERT NULL POPUP PRODUCTVERSION PUSHBUTTON SEPARATOR SHIFT STRINGTABLE STYLE TRUE VALUE VERSIONINFO VIRTKEY
C11=
C12=
C13=
C14=
C15=
;On Hold
C16=
"To deny our impulses... foolish; to revel in them, chaos." MCJ 2003.08

NightWare

#19
Quote from: Mark Jones on June 06, 2009, 05:32:00 PM
Nightware, add those entries to MASM.INI under the [Keywords] section. I have it defined in C5. i.e.

hi,
sorry, i've just see it now, i think you misunderstood me with CVTTSI2SD CVTTSI2SS etc..., converting an integer to float value with truncating can't exist.

here mine, but maybe i've forgotten some instructions :
;Registers
C0=AH AL AX BH BL BP BX CH CL CR0 CR2 CR3 CR4 CS CX DH DI DL DR0 DR1 DR2 DR3 DR6 DR7 DS DX EAX EBP EBX ECX EDI EDX EFLAGS ES ESI ESP FS GDTR GS IDTR LDTR MM0 MM1 MM2 MM3 MM4 MM5 MM6 MM7 MXCSR R10 R11 R12 R13 R14 R15 R8 R9 RAX RBP RBX RCX RDI RDX RSI RSP SI SP SS ST ST(0) ST(1) ST(2) ST(3) ST(4) ST(5) ST(6) ST(7) TR3 TR4 TR5 TR6 TR7 XMM0 XMM1 XMM10 XMM11 XMM12 XMM13 XMM14 XMM15 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7 XMM8 XMM9 YMM0 YMM1 YMM2 YMM3 YMM4 YMM5 YMM6 YMM7
;Instructions
C1=AAA AAD AAM AAS ADC ADD AND ARPL BOUND BSF BSR BSWAP BT BTC BTR BTS CALL CBW CDQ CLC CLD CLI CLTS CMC CMOVA CMOVAE CMOVB CMOVBE CMOVC CMOVE CMOVG CMOVGE CMOVL CMOVLE CMOVNA CMOVNAE CMOVNB CMOVNBE CMOVNC CMOVNE CMOVNG CMOVNGE CMOVNL CMOVNLE CMOVNO CMOVNP CMOVNS CMOVNZ CMOVO CMOVP CMOVPE CMOVPO CMOVS CMOVZ CMP CMPS CMPSB CMPSD CMPSW CMPXCHG CMPXCHG8B CPUID CWD CWDE DAA DAS DEC DIV ENTER HLT IDIV IMUL IN INC INS INSB INSD INSW INT INTO INVD INVLPG IRET IRETD IRETDF IRETF JA JAE JB JBE JC JCXZ JE JECXZ JG JGE JL JLE JMP JNA JNAE JNB JNBE JNC JNE JNG JNGE JNL JNLE JNO JNP JNS JNZ JO JP JPE JPO JS JZ LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT LMSW LOCK LODS LODSB LODSD LODSW LOOP LOOPD LOOPE LOOPED LOOPEW LOOPNE LOOPNED LOOPNEW LOOPNZ LOOPNZD LOOPNZW LOOPW LOOPZ LOOPZD LOOPZW LSL LSS LTR MOV MOVS MOVSB MOVSD MOVSW MOVSX MOVZX MUL NEG NOP NOT OR OUT OUTS OUTSB OUTSD OUTSW POP POPA POPAD POPF POPFD PUSH PUSHA PUSHAD PUSHAW PUSHD PUSHF PUSHFD PUSHW RCL RCR RDMSR RDTSC REP REPE REPNE REPNZ REPZ RET RETF RETN ROL ROR RSM SAHF SAL SALC SAR SBB SCAS SCASB SCASD SCASW SETA SETAE SETB SETBE SETC SETE SETG SETGE SETL SETLE SETNA SETNAE SETNB SETNBE SETNC SETNE SETNG SETNGE SETNL SETNLE SETNO SETNP SETNS SETNZ SETO SETP SETPE SETPO SETS SETZ SGDT SHL SHLD SHR SHRD SIDT SLDT SMSW STC STD STI STOS STOSB STOSD STOSW STR SUB TEST UD2 VERR VERW WAIT WBINVD WRMSR XADD XCHG XLAT XLATB XOR
;Instructions fpu
C2=F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX FCMOVA FCMOVAE FCMOVB FCMOVBE FCMOVE FCMOVNA FCMOVNAE FCMOVNB FCMOVNBE FCMOVNE FCMOVNU FCMOVU FCOM FCOMI FCOMIP FCOMP FCOMPP FCOS FDECSTP FDISI FDIV FDIVP FDIVR FDIVRP FENI FFREE FIADD FICOM FICOMP FIDIV FIDIVR FILD FIMUL FINCSTP FINIT FIST FISTP FISUB FISUBR FLD FLD1 FLDCW FLDENV FLDENVD FLDENVW FLDL2E FLDL2T FLDLG2 FLDLN2 FLDPI FLDZ FMUL FMULP FNCLEX FNDISI FNENI FNINIT FNOP FNSAVE FNSAVED FNSAVEW FNSTCW FNSTENV FNSTENVD FNSTENVW FNSTSW FPATAN FPREM FPREM1 FPTAN FRNDINT FRSTOR FRSTORD FRSTORW FSAVE FSAVED FSAVEW FSCALE FSETPM FSIN FSINCOS FSQRT FST FSTCW FSTENV FSTENVD FSTENVW FSTP FSTSW FSUB FSUBP FSUBR FSUBRP FTST FUCOM FUCOMI FUCOMIP FUCOMP FUCOMPP FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1
;Instructions mmx
C3=EMMS MOVD MOVQ PACKSSDW PACKSSWB PACKUSDW PACKUSWB PADDB PADDD PADDSB PADDSW PADDUSB PADDUSW PADDW PAND PANDN PCMPEQB PCMPEQD PCMPEQW PCMPGTB PCMPGTD PCMPGTW PMADDWD PMULHW PMULLW POR PSHUFW PSLLD PSLLQ PSLLW PSRLD PSRLQ PSRLW PSUBB PSUBD PSUBSB PSUBSW PSUBUSB PSUBUSW PSUBW PUNPCKHBW PUNPCKHDQ PUNPCKHWD PUNPCKLBW PUNPCKLDQ PUNPCKLWD PXOR
;Instructions sse
C4=ADDPS ADDSS ANDNPS ANDPS CMPEQPS CMPEQSS CMPLEPS CMPLESS CMPLTPS CMPLTSS CMPNEQPS CMPNEQSS CMPNLEPS CMPNLESS CMPNLTPS CMPNLTSS COMISS CVTPI2PS CVTPS2PI CVTSI2SS CVTSS2SI CVTTPS2PI CVTTSS2SI DIVPS DIVSS FXRSTOR FXSAVE LDMXCSR MASKMOVQ MAXPS MAXSS MINPS MINSS MOVAPS MOVHLPS MOVHPS MOVLHPS MOVLPS MOVMSKPS MOVNTPS MOVNTQ MOVSS MOVUPS MULPS MULSS ORPS PAVGB PAVGW PEXTRW PINSRW PMAXSW PMAXUB PMINSW PMINUB PMOVMSKB PMULHUW PREFETCHNTA PREFETCHT0 PREFETCHT1 PREFETCHT2 PSADBW RCPPS RCPSS RSQRTPS RSQRTSS SFENCE SHUFPS SQRTPS SQRTSS STMXCSR SUBPS SUBSS UCOMISS UNPCKHPS UNPCKLPS XORPS
;Instructions sse2
C5=ADDPD ADDSD ANDNPD ANDPD CMPEQPD CMPEQSD CMPLEPD CMPLESD CMPLTPD CMPLTSD CMPNEQPD CMPNEQSD CMPNLEPD CMPNLESD CMPNLTPD CMPNLTSD COMISD CVTDQ2PD CVTDQ2PS CVTPD2DQ CVTPD2PI CVTPD2PS CVTPI2PD CVTPS2DQ CVTPS2PD CVTSD2SI CVTSD2SS CVTSI2SD CVTSS2SD CVTTPD2DQ CVTTPD2PI CVTTPS2DQ CVTTPS2DQ CVTTSD2SI DIVPD DIVSD LFENCE MASKMOVDQU MAXPD MAXSD MFENCE MINPD MINSD MOVAPD MOVDQ2Q MOVDQA MOVDQU MOVHPD MOVLPD MOVMSKPD MOVNTDQ MOVNTI MOVNTPD MOVQ2DQ MOVUPD MULPD MULSD ORPD PADDQ PAUSE PMULUDQ PSHUFD PSHUFHW PSHUFLW PSLLDQ PSRAD PSRAW PSRLDQ PSUBQ PUNPCKHQDQ PUNPCKLQDQ SHUFPD SQRTPD SQRTSD SUBPD SUBSD UCOMISD UNPCKHPD UNPCKLPD XORPD
;Instructions sse3+
C6=ADDSUBPD ADDSUBPS BLENDPD BLENDPS BLENDVPD BLENDVPS DPPD DPPS EXTRACTPS EXTRQ FISTTP HADDPD HADDPS HSUBPD HSUBPS INSERTPS INSERTQ LDDQU MOVDDUP MOVNTDQA MOVNTSD MOVNTSS MOVSHDUP MOVSLDUP MPSADBW PABSB PABSD PABSW PALIGNR PBLENDVB PBLENDW PCMPEQQ PEXTRB PEXTRD PEXTRQ PHADDD PHADDSW PHADDW PHMINPOSUW PHSUBD PHSUBSW PHSUBW PINSRB PINSRD PINSRQ PMADDUBSW PMAXSD PMAXUD PMINSD PMINUD PMOVSXBD PMOVSXBQ PMOVSXBW PMOVSXDQ PMOVSXWD PMOVSXWQ PMOVZXBD PMOVZXBQ PMOVZXBW PMOVZXDQ PMOVZXWD PMOVZXWQ PMULDQ PMULHRSW PMULLD PSHUFB PSIGNB PSIGND PSIGNW PTEST ROUNDPD ROUNDPS ROUNDSD ROUNDSS


EDIT : i've updated the list of instructions with a recent list.