I didn't see it mentioned here, but in my opinion the finest assembler available for the 65x family is 64Tass, which can be found here:
https://sourceforge.net/projects/tass64 ... =directory64Tass outputs for the following: 6502/65C02/R65C02/W65C02/65CE02/65816/DTV/65EL02. 64Tass is multi-platform and runs from the command line. I use it right in Notepad++ and it has great macro capabilities, an extensive help file in PDF format, great source listings, a super-clean syntax (the one thing I find to be the best feature of all), and the ability to output segmented code, which is very useful for ROMs, carts, etc. In addition, 64Tass is in active development and new features are added all the time -- it is very stable.
In terms of 65816 programming 64Tass is excellent. I have used it for several years to program complex, multi-kernal ROMs for the SuperCPU, drive code, and OS extensions (sometimes all in the same batch); to date I have not experienced a single "bug" not related to my own coding errors
Open source, lightweight, and ultra-fast at only 400K or so -- your 1 MB source script with 100+ files will complete in just a second or two -- it's so good that I have been mulling converting it to x86 (and '816) assembly language as sort of a future side project. The author is a great guy and I always admire how he readily responds to user's questions.
It cannot be overstated just how easy and effective 64Tass is to use.