⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 8139网卡dos实模式驱动及简单收发数据源代码
💻 TXT
字号:
8139系列网卡dos下的两个简单驱动及接收、发送程序代码详细说明。
作者:成松林
QQ:179641795
email:cheng_5103@126.com cheng_5103@163.com
本程序为dos下实验,了解网卡的工作原理及驱动的编写。
pack.com
xxx:100无条件跳转到卡的安装程序。
xxx:110处为网卡初始化子程序。(注:简单初始化tx配置、rx配置、rx缓冲区:
为32位物理地址,打开tx、rx允许位,打开卡的中断允许位,tx缓冲区在发送时
设置即可注也是32位物理地址。其他寄存器为重置卡后的默认值。)
xxx:170处为网卡rok中断程序,并显示指定包内容(注:显示由send.com发的内容,
因卡收包过程在缓冲区是一个'环式的工作方式',故为了方便此中断程序每次重置
卡的rx缓冲区,不正确处是在重置卡的rx缓冲区前将rx配置值保存,后再恢复。)
xxx:1b0处为网卡tok中断程序,简单显示发送成功子程序。(注:不完善应该
加上处理发送成功后,计算下一个可用或叫空闲的发送缓冲区号,放到指定位置
以便发送程序知道下一个空闲的发送缓冲区号)。
xxx:1c0处为显示子程序,入口:cx=显示字符数;bx=显示缓冲首地址(注:用的
ah=0eh  int 10h来显示的)。
xxx:1f0处为网卡除rok、tok两个中断以外的所有中断程序(注:简单显示出错)
xxx:200处为网卡的irq中断主程序,本服务只检测tok、rok中断,并调用相应的
卡中断程序,其他的的卡中断全部显示卡出错信息并重新初始化网卡。(注:该服务
程序用的自己的堆栈。因irq号有可能共用,故程序起初就判断是否为卡的中断,
是卡的中断继续,否则调用旧的irq号中断服务程序。)
xxx:300

xxx:2fff这段内存为卡的rx缓冲区以及卡的irq中断所用的堆栈内存区。
xxx:3000处为卡的安装程序。(注:先查找卡:只找第一块卡,获得卡的io基地址、
irq号保存,计算irq向量安装中断服务程序,打开irq允许位,最后调用卡的初始
化程序,完成卡的全部完装中断驻留退出。)
send.com
通过ah=a;int21h接收用户输入内容数据,设置好特定各式的包内容,获得卡的空
闲发送缓冲区号,设置好卡的发送地址,最后置卡发送。


rx缓冲区环式的工作方式:原理网卡自动根据用户配置的rx缓冲区大小,将第一
个收到的包放到用户指定的rx缓冲区地址开始处,网卡自动将后面的包依次放到
第一包后面,开成一个链式的包结构,并每次收包后自动设置cbr寄存器即收到
包的总字节数,直到卡rx缓冲区满为止。这时就要重置卡的rx缓冲区了,方法:
保存rx配置,关闭网卡收包即向网卡命令寄存器写不允许收包,当然这时可以
重新设置网收包缓冲区地址一般这里不做改变取原来的,接着打开收包,最后
恢复rx配置即可。这样开成了一个循环链式缓冲区结构。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -