A chamada de subrotinas em assembly é essencialmente uma instrução de desvio, onde o endereço da instrução seguinte é salvo na pilha para permitir o retorno após a execução da subrotina. Assim, duas formas de desvio para subrotina são suportados:
JSR <ea>
BSR <label>
A instrução JSR é codificada por
0100111010.mmm.rrr
onde mmm.rrr são os campos de modo e registrador do endereço efetivo
da subrotina, sendo que apenas os modos de endereçamento de controle são
válidos.
A instrução BSR é codificada por
01100001.vvvvvvvv
llllllll llllllll
onde v...v é o campo de deslocamento de 8 bits e l ...l
é o campo de deslocamento de 16 bits, só presente quando v...v
for 0.
O retorno de uma subrotina sempre ocorre pela instrução RTS, que não recebe nenhum operando e tem codificação
0100111001110101
ou $4E75.