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
这是一个示例,您可以如何评估是否存在错误以及操作员是否输入了任何内容。
如何处理 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
这是一个示例,您可以如何评估是否存在错误以及操作员是否输入了任何内容。