You can use the Nios II IDE to write assembler. Just name your source file with a .s or .S extension, and it will be compiled as assembly.
You can start your code from the standard full c entry point by providing the main function in assembler:
.section .text
.globl main
main:
This will give you the full device driver initialisation before your code starts. Presumably you want greater control than that, so you can use the alt_main entry point intstead:
.section .text
.globl alt_main
alt_main:
In this case the only code that will run before yours is the code defined in crt0.S. This deals with initialising the caches, the stack pointer, bss and the global pointer.
If you want to take full control of the boot process, then copy the file crt0.S from the nios2 component into your system library project (not application project), and then modify this file as required. This copy will be used in preference to the one supplied by the nios2 component.