首先是一点背景。z80 CPU 有一条名为DJNZ的指令,可以以与for
循环类似的方式使用。基本上 DJNZ 会减少 B 寄存器,如果不为零则跳转到标签。例如:
ld b,96 ; erase all of the line
disp_version_erase_loop:
call _vputblank ; erase pixels at cursor (uses b reg)
djnz disp_version_erase_loop ; loop
当然,您可以使用常规比较和跳转指令来做同样的事情,但通常使用单条指令很方便。
顺便说一句,我的问题是,其他 CPU 架构是否包含类似的控制指令?