-1

我在汇编语言中有这个延迟例程,有人可以解释一下它是如何工作的吗?我对组装非常陌生,并试图理解这些见解。谁能帮我理解 PUSH & POP 的功能?任何帮助将不胜感激 :)

    DELAY: MOV CX, 0FFH

    DLY5: PUSH CX
          MOV CX, 03FFH

    DLY10: NOP
           LOOP DLY10
           POP CX
           LOOP DLY5
           RET
4

1 回答 1

2

push/pop这种情况下,用于运行外循环。并且整个延迟只使用一个寄存器,同时有两个计数器(内循环为 03FFH,外循环为 0FFH)。

也许作者不想破坏另一个寄存器,或者他想使用需要cx寄存器的循环指令。

于 2013-10-26T13:37:40.670 回答