2013-03-17 198 views
0

我想在业余时间学习汇编语言以帮助我充当使用高级语言的开发人员的角色。nasm - 汇编语言介绍

我在这里遵循NASM教程:http://leto.net/writing/nasm.php

我能够创建并运行一个简单的程序,将HelloWorld打印到屏幕上。我在上面的链接下面一段困惑:

mov eax,5  ; the syscall number for open() 

So where do find out all of the semantics for all of the various system calls? 
Well first, the numbers are listed in asm/unistd.h in Linux, and sys/syscall.h 
in the *BSD's 

我认为,这意味着:如果EAX寄存器5,那么它是一个系统调用开放。系统调用的其余部分是否记录在某处?

我在Windows 7 PC上使用NASM。

+0

BSD/Linux的系统调用ID是不会有太大用的,如果你正在运行在Windows下... – 2013-03-17 15:09:27

+0

@Marc B,谢谢。你知道Windows中系统调用的等价物吗? – w0051977 2013-03-17 15:10:39

回答

1
+0

谢谢。我用C++使用了Windows API,但是没有使用汇编。说Windows API相当于Linux中的SYSCALL是否公平? – w0051977 2013-03-17 15:21:43

+0

* nix中的int 80'相当于DOS中断。现代版本的Windows DO使用syscall/sysenter和中断,但用户模式应用程序不能使用它们。我们使用Windows API与操作系统进行交互。 – Gunner 2013-03-17 15:28:07

+0

最后,我认为用户模式应用程序可以在Linux中使用系统调用? (我没有Linux编程经验)。 – w0051977 2013-03-17 15:47:38