Exception/Error 在 NASM 程序集中处理

Exception/Error handling in NASM assembly

如何处理 NASM 程序集中的错误? 例如我有这段代码来读取用户输入:

mov eax,3
mov ebx,0
mov ecx,Buffer
mov edx,BUFFERLENGTH
int 80H

如果由于某种原因无法执行此系统调用,我想让程序跳转到打印 "An error has occured" 或类似内容的标签。我该怎么做?

另外,是否可以获取异常名称或错误代码?

谢谢

内核调用后,EAX将有两种可能;

  • 输入的字符数。
  • 否定错误代码。

                int     80H
                or      eax, eax
                jns     OK        ; Tests sign flag
    
                neg     eax       ; Converts error code to positive value
        ;   Error trapping here
    
           OK:  dec     eax       ; Bump by one cause length includes CR
                jnz     Good
        ; Do something special if operator only entered CR
    
         Good:  nop
    

    这是一个示例,您可以如何评估是否存在错误以及操作员是否输入了任何内容。