汇编语言如何与互联网等互动?

Mau*_*rus 5 assembly

所以前几天我在思考语言,让我感到震惊的是,任何用互联网交互的编译语言编写的程序都会被转换成必须与Internet交互的程序集.我刚刚开始学习一些x86程序集来帮助我更好地理解C++,而且我对这样低级别的东西如何能够访问互联网感到困惑.

我确信这个问题的完整答案远远超过SO答案,但有人可能会给我一个基本的总结吗?

Ale*_*lli 12

在所有现代系统中,与互联网"交互"的用户空间程序通过向底层操作系统发出系统调用来实现,该操作系统为TCP/IP堆栈提供API.

该系统在问题呼叫(例如socket,listen,accept,和所述左右)通常记录在一个C水平,但在每一个特定的OS实现他们将翻译为机器代码,当然.但是,值是否在特定寄存器中,或者特定寄存器指向的存储器中的位置等,是非常小的并且完全是系统特定的.

如果您想知道内核和设备驱动程序中的机器代码(可能也是从C编译)"与Internet交互"(响应系统调用),它通过构建和维护内存中的数据结构来实现这一点.跟踪各种事物的状态,并通过与底层硬件交互(例如,通过中断,I/O端口,内存映射设备区域或特定架构使用的任何东西) - 就像它与(例如)视频显示器交互一样,或磁盘设备.