gpt4 book ai didi

assembly - 汇编语言如何与Internet之类的东西交互?

转载 作者:行者123 更新时间:2023-12-04 16:49:50 24 4
gpt4 key购买 nike

因此,前几天我在考虑语言,这让我吃惊的是,任何以与Internet交互的已编译语言编写的程序都将转换为必须与Internet交互的程序集。我刚刚开始学习一些x86汇编程序,以帮助我更好地理解C++,并且我对如此低级的功能如何能够完成诸如访问Internet之类的操作感到困惑。

我敢肯定,这个问题的完整答案远远超出了SO答案所能满足的范围,但是有人可以给我一个基本的摘要吗?

最佳答案

在所有现代系统中,与互联网交互的用户空间程序都是通过向基础操作系统发出system calls来实现的,该操作系统为TCP/IP堆栈提供API。

有问题的系统调用(例如socketlistenaccept等)通常以C级别记录,但是在每种特定的OS实现中,它们当然都将转换为机器代码。但是,值是进入特定的寄存器还是由特定的寄存器指向的内存中的位置,等等,都是很小的,并且完全是系统特定的。

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

关于assembly - 汇编语言如何与Internet之类的东西交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2619475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com