在 RealMode 中使用 x86 程序集处理 HTTP 请求

Work with HTTP Requests with x86 Assembly in RealMode

有没有办法在 RealMode(使用 DosBox)中以 Intel 8086 的汇编语言执行 HTTP 请求? 英特尔处理器是否提供软件中断或访问网络驱动程序?

有什么地方可以解释一下吗?

Do Intel processors provide software interrupts, or access to a network driver?

软件中断只是call指令的一种特殊变体;这不仅适用于 Intel (x86) 处理器,而且适用于任何其他类型的处理器。

如果您调用 int 10h,您实际上对存储在视频卡 ROM 中的某些函数执行了特殊的 call 指令。

一般网卡上没有ROM,所以网卡ROM上不可能有中断调用代码。

但是有些设备驱动程序 "installed" 拥有中断(例如:int 33h 由鼠标驱动程序安装)。

Dosbox 似乎模拟了一些与 IPX 网络协议相关的中断,但我怀疑它是否模拟了真实的网卡或任何与 TCP/IP 协议相关的东西。

Is there a way to perform an HTTP request in the Assembly language?

使用仿真器模拟网卡,您可以 运行 MS-DOS、DR-DOS 或 FreeDOS 并访问网卡。

我已经用 VMware 这样做了,但我只使用了 UDP,而且我混淆了 C 和汇编代码:这并不容易!

您必须发送原始以太网数据包,这意味着您必须自己构建整个 IP 数据包的内容 - 并且 TCP 协议比 UDP 协议复杂得多,因此 HTTP 会非常非常复杂.

在汇编器中完成所有这些在理论上是可行的,但您将需要很多时间...