Quando alguém grita em português, em francês, etc, o comando "chute a bola", a ação final será a mesma, chutar a bola.
Em assembly ou em C multiplicar por 5, ou "chutar a bola" o resultado será o mesmo.
Assembly pic 16F:
Suponha que você tenha escrito um bloco de instruções que multiplica por 5 um valor que está em W.
O bloco em assembly que multiplica por 5 é o que se chama função.
Função é um bloco de instruções que vai trabalhar um valor que se quer multiplicar.
Matemática informal misturada com digital:
Função é um bloco de instruções que fará uma transformação em um elemento do domínio e após transformado (trabalhado) vai ligá-lo a outro elemento do contra domínio ("o resultado).
Em assembly do PIC 16F ao final desse bloco tem um return.
Em C você vai escrever somente que quer multiplicar por 5.
O compilador vai gerar o bloco que fará essa multiplicação, tal como em assembly.
Ao final desse bloco vai ter um return.
O bloco em C, no seu editor de texto, estará entre chaves {}. Ao encontrar o final do bloco, retorna a quem chamou.
Salto condicional e salto incondicional (IF else em C).
Em assembly PIC 16F você usa as instruções Salte se o bit tal está alto e similares.
Em C vai usar if else. Ele vai gerar o equivalente ao assembly:
Se o bit tal estiver alto execute a linha a seguir. Se não estiver
salte para o endereço tal e execute...
Em C você escreve em um editor de texto algo mais legível que em assembly.
Basta dizer em linguagem c:
Z = b * k ;
Vai gerar um monte de instruções como em assembly para fazer esse produto.
Em C: pode dar nome aos bois
#define Z Quantidade_de_bois
Quantidade_de_bois = b * k ;
Além de não precisar saber como multiplicar em assembly fica-se com um código legível.
O compilador não necessita gerar assembly do código objeto (código de máquina). Pode-se configurar para que gere o assembly.
Espero que tenha visualizado como após chamar uma função e retornar possa passar(chamar "call") para outra função e os saltos condicionais, visto que o seu texto em C gerou blocos (código objeto) ou também em assembly, para sua leitura.