There is a difference;
when coding B *, the CPU has to fetch the instruction
again and again, so it is easy to interrupt the endless loop by another
process or task. But a (theoretical) EX R0,* loop cannot be interrupted,
because
the loop is inside the execution logic of ONE instruction.
Kind regards
Bernd
Am 07.08.2018 um 01:49 schrieb Steve Smith:
On 8/6/2018 18:12, Dan Greiner wrote:
I was once asked why the execute exception existed. That is, why not
just let the hardware — or, in this odd case, the firmware — cascade
down a chain of multiple EX instructions, ORing the bits of the R1
field with the subsequent target instruction, whatever instruction
that might be. Aside from there being absolutely no practical reason
for wasting circuits on such folly, the answer is obvious ... the EX
instruction could target itself, and the CPU would get its knickers
tied into a knot without an exception.
Obvious, maybe, but maybe not. B * isn't prevented from spinning the
CPU. It has no knickers, and cares not if you carelessly make it work
furiously at nothing.
sas