3) 还应该说明的是,在编写汇编语言子过程时,应注意寄存器使用方面的限制,有关这个问题在不同的C语言版本中的规定有一些差别。

  一般来说在汇编语言子过程中可以任意使用AX、BX、CX、DX和ES寄存器,如需要使用BP、SP、DI、SI、CS、DS和SS寄存器时,则应先把它们的原始内容保存入栈,并在子程序结束前恢复它们的原始内容。flag寄存器也是在子程序中可以任意使用的,但假如子程序中曾使DF位为1,则在子程序结束前应使用CLD指令使该位恢复为零。

  下面我们用例子说明。