如何使用汇编语言读取和写入连接的PCI设备?

问题描述

我正在学习有关硬件和驱动程序编程的知识。我试图分析为PCI,以太网和以太网卡上的menuetoS编程的代码。我可以理解这些概念以及每个部分的功能。 我开始为自己的笔记本电脑编程PCI和以太网,但无法获得供应商和设备ID 在Kali Linux中。实际上,我遇到了语法错误或分段错误。我正在尝试使用用于在MS-DOS中获取供应商和设备ID的代码CODE

eax: 80000000
ecx: 00000020

0100 : mov dx,0cf8
0103 : out dx,eax
0105 : mov dx,0cfc
0108 : mov ebp,eax
010B : in eax,dx
010D : cmp eax,FFFFFFFF
0113 : je 0130
0115 : mov ds:[ebx],eax
011A : add ebx,0004
011E : mov [ebx],ebp
0123 : add ebx,0004
0127 : mov eax,ebp
012A : add eax,00000800
0130 : loop 0100

它写道:

ds: 0000 12378086 80000000
ds: 0008 80008086 80000800
ds: 0010 BEEF80EE 00001000
            .
            .
            .

问题1:如何在NASM中获取这些值然后打印出来? (实际上,我不知道写入或读取不同设备的起始地址,也不知道如何在内存中找到它们)

第二季度:在安装NIC的驱动程序之前,操作系统(如Windows或Linux)如何连接到Internet?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)