Hello!
I just wanted to ask which tools/IDE the ZSNES DEvs favor for asm coding?
wbr Shin Gouki
asm tools/IDE
Moderator: ZSNES Mods
-
- Rookie
- Posts: 21
- Joined: Mon Jul 18, 2005 2:16 pm
- Location: BW, Germany
-
- ZSNES Developer
- Posts: 3904
- Joined: Tue Jul 27, 2004 10:54 pm
- Location: Solar powered park bench
- Contact:
KATE, NASM, The ZSNES assembly toolkit.
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
_____________
Insane Coding
_____________
Insane Coding
In case anyone's interested, here's the assembly syntax hilighting scheme I use for NASM code in UltraEdit. Its not perfect (e.g. it thinks cmp [foo],bar is a store) but I find it pretty useful:
I use black text on white background, so for Loads and Stores I just use a light blue or light red background respectively. Stack opcodes show up in load/store color. Loads use a blockcomment from "," to "]" and Stores use a blockcomment from "[" to "]". There's also an "alt blockcomment" for lea, which runs from "lea" to "]", so you can set that one to be the same color as plain text, and avoid having lea instructions look like loads. One down-side of this, is if the letters "lea" occur in an identifier it might think that's the start of a block comment. Oh well.
I use a light green background for my MMX opcodes and instructions. Their keyword list might be missing SSE2 instructions, I haven't updated it in ages.
Code: Select all
/L8"ASM" Nocase Line Comment = ; Block Comment On Alt = lea Block Comment Off Alt = ] Escape Char = \ String Chars = "' File Extensions = ASM S INC LST
/Delimiters = ~!^&*()-+=|\/{}[]:;"'<> , .?
/Marker Characters = "[],]"
/Function String 1 = "%[a-zA-Z_]+^{:^}^{[ ^t]+equ^}"
/Indent Strings = "{"
/Unindent Strings = "}"
/C1"Macros/Directives"
$ $$
%assign
%clear
%define
%elif %elifctx %elifdef %elifid %elifidn %elifidni %elifndef %elifndef %elifnid %elifnidn %elifnidni %elifnnum %elifnstr %elifnum %elifstr %else %endif %endmacro %endrep %error
%iassign %idefine %if %ifctx %ifdef %ifid %ifidn %ifidni %ifnctx %ifndef %ifnid %ifnidn %ifnidni %ifnnum %ifnstr %ifnum %ifstr %include
%macro
%pop %push
%rep %repl %rotate
%undef
__FILE__ __LINE__ __NASM_MAJOR__ __NASM_MINOR__ __SECT__
a16 a32 absolute align alignb
bits
common
equ extern
global
incbin
o16 o32 org
times
section segment
/C2"unused1"
/C3"MMX insns and regs"
movd movq
mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7
pand paddb paddd paddq paddw pandn pcmpeqb pcmpeqw pcmpeqd pcmpgtb pcmpgtw pcmpgtd pextrw pmaddwd pmovmskb pmulhw pmullw por pshufw psubb psubd psubq psubw pxor
psllq psrlq
xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7
/C4"Loads"
,]
cmpsb cmpsd cmpsw
db dd dq dt dw
lodsb lodsd lodsw
resb resd resq rest resw
pop popa popad popf popfd
/C5"Stores"
[]
movsb movsd movsw
stosb stosd stosw
push pusha pushad pushf pushfd
/C6"unused2"
/C7"unused3"
/C8"unused4"
I use a light green background for my MMX opcodes and instructions. Their keyword list might be missing SSE2 instructions, I haven't updated it in ages.