我正慢慢地试图进入osdev只是为了玩。
This tutorial有一个程序集等待驱动器准备就绪:
reset_drive:
mov ah, 0
int 13h
or ah, ah
jnz reset_drive
中断后,如果设备准备好,ah
将为零。但是or ah,ah
做了什么?似乎有点多余......似乎什么都不做。 (至少按照我的逻辑)它做了什么?
答案 0 :(得分:12)
根据ah
是否为零来设置/取消设置ZERO标志。
根据标记的状态,jnz reset_drive
将跳转:仅当ah
不为零时才会跳转。
换句话说,它会等待设备准备就绪,因为它会在ah
变为零后停止重复。