为什么"或啊,啊"?

时间:2012-12-22 15:31:24

标签: assembly x86

我正慢慢地试图进入osdev只是为了玩。

This tutorial有一个程序集等待驱动器准备就绪:

reset_drive:
   mov ah, 0
   int 13h
   or ah, ah
   jnz reset_drive

中断后,如果设备准备好,ah将为零。但是or ah,ah做了什么?似乎有点多余......似乎什么都不做。 (至少按照我的逻辑)它做了什么?

1 个答案:

答案 0 :(得分:12)

根据ah是否为零来设置/取消设置ZERO标志。

根据标记的状态,jnz reset_drive将跳转:仅当ah 为零时才会跳转。

换句话说,它会等待设备准备就绪,因为它会在ah变为零后停止重复。