ebreak
lyszt.net obejmuje ebreak i inne instrukcje RISC-V w większych szczegółach.
Opis
ebreak zatrzymuje program. Nazwa jest skrótem od environment break (przerwanie środowiska). Oznacza punkt, w którym kontrolę przejmuje debugger, a ten symulator zatrzymuje wykonywanie w tej linii. Ta forma nie przyjmuje operandów.
ebreak
Procesor zatrzymuje się tam, a linie po niej nie są wykonywane. Rejestry i pamięć zachowują swoje wartości, więc stan w punkcie przerwania można później zbadać. ecall z usługą 10 kończy program normalnie, a ebreak zatrzymuje go w wybranym miejscu.
Podręcznik RISC-V opisuje ebreak jako zwrócenie kontroli do środowiska debugowania i definiuje go razem z ecall, który prosi środowisko o usługę. Oba powodują dokładny żądany trap, celowe przekazanie kontroli do środowiska.
Przykład ustawia t0 na 1 i wykonuje ebreak. Następujące po niej li nigdy się nie wykonuje, więc t0 pozostaje równe 1.
Przykład
li t0, 1 ebreak # the program stops here li t0, 2 # never reached
