Обычно вы оставляете код возврата в одном или нескольких регистрах, но, поскольку вы все контролируете, вы можете оставить его где угодно!
Когда приложение прерывается, подпрограмма обработки прерываний должна где-то сохранять состояние приложения, что, вероятно, будет означать копирование из теневых регистров в предопределенное место в памяти.
Если приложение передает управление обратно в ОС (посредством программного прерывания / вызова системы), вам необходимо определить собственное соглашение о вызовах, для которого размещаются аргументы регистров, и обработчик событий должен следовать этому перед передачей управления обратно. в ОС. Возможно, вы захотите сделать так, чтобы соглашение о вызовах максимально соответствовало соглашению вашего компилятора c, чтобы вам было проще.