ebreak

ebreak

Assembly RISC-V Referência

lyszt.net aborda ebreak e outras instruções RISC-V com mais detalhes.

Descrição

ebreak interrompe o programa. O nome é a abreviação de environment break. Ele marca um ponto em que um depurador assume o controle, e este simulador interrompe a execução nessa linha. A forma não recebe operandos.

ebreak

O processador para ali e as linhas seguintes não são executadas. Os registradores e a memória mantêm seus valores, então o estado no ponto de interrupção pode ser inspecionado depois. ecall com o serviço 10 encerra um programa normalmente, e ebreak o interrompe em um ponto escolhido.

O manual do RISC-V descreve ebreak como devolvendo o controle a um ambiente de depuração, e o define junto com ecall, que solicita um serviço ao ambiente. Ambos causam um trap preciso solicitado, uma transferência deliberada de controle para o ambiente.

O exemplo define t0 como 1 e executa ebreak. O li depois dele nunca é executado, então t0 permanece 1.

Exemplo

li t0, 1
ebreak   # the program stops here
li t0, 2   # never reached