Se già usi TASM, potresti adottare un editor specifico, qual'è <a href="http://creamelana.tripod.com/Tasm/TasmIDE.htm">TasmIDE</a>.
In alternativa, <a href="http://radasm.visualassembler.com">RadASM</a> è un IDE multiassembler che supporta i principali strumenti di sviluppo Assembly (MASM, TASM, NASM...): ovviamente, gli stessi strumenti di sviluppo devono essere reperiti a parte.
Se vuoi invece lavorare direttamente con gli strumenti originali, ti consiglio di adottare <b>Microsoft MASM</b>, che viene fornito con un proprio ambiente integrato di sviluppo chiamato <b>PWB</b> (<i>Programmer's WorkBench</i>), dotato dello storico debugger Microsoft CodeView.
Per quanto riguarda la programmazione di <b>applicazioni TSR</b> (Terminate-and-Stay-Resident, per chi non conoscesse il significato del termine) il discorso si fa piuttosto lungo, per cui ti rimando direttamente alla <a href="http://web.sau.edu/LillisKevinM/csci240/masmdocs/programmersguide/15LMAPGC11.pdf">documentazione originale Microsoft</a>, che tratta in maniera esaustiva l'argomento.
Sappi, comunque, che il debug di programmi TSR è sempre stato un problema, che ogni sviluppatore risolve (più o meno) con metodi personali, il più delle volte inserendo nel proprio codice <b>appositi <i>interrupts</i></b> generati dal processore (<b>INT 01</b> - <i>Single Step</i>, <b>INT 03</b> - <i>Breakpoint</i>) per fermare l'esecuzione del programma ed esaminare i dati d'interesse.
Anche in questo caso, ti rimando alla fonte della documentazione sugli <i>interrupts</i> e cioè il <a href="http://www.cs.cmu.edu/~ralf/files.html">sito di Ralf Brown</a>, dove puoi scaricare la lista completa di tutti gli interrupts in formato testo.
Di tale documentazione esiste anche una <a href="http://www.ctyme.com/rbrown.htm">versione HTML</a>, di più agevole consultazione.