首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

请问关于NASM的$使用

2012-02-08 
请教关于NASM的$使用@dd0FFFFFFFFhLinktonextdevice-headerblockdw8000hDriverdeviceattributes dwStr

请教关于NASM的$使用
@dd0FFFFFFFFh;   Link   to   next   device-header   block
dw8000h;   Driver   "device   attributes "
dwStrat;   "Strategy "   routine   offset
VLFequ$-2;   (VDS   "lock "   flag   after   initialization)
IDEAdrequ$-1;   (Lower   IDE   status   address,   after   init)
dwDevInt;   "Device-Interrupt "   routine   offset
PCIAdrequ$-2;   (PCI   UDMA   command   address,   after   init)
db16,16, 'UDMA$ ',0   ;   Driver   name   (arrows   avoid   user   errors)

......

mov[bx+IDEAdr-@],bp;   Set   IDE   &   PCI   device-address   bytes

......

Stratmov[cs:Packet],bx;   Save   DOS   request-packet   address

......


------------------------------
以上是一个驱动程序的部分代码。
IDEAdr、VLF是不是分别代表(@+4+2+2-1)、(@+4+2+2-2)?
执行   mov[bx+IDEAdr-@],bp;   前bx已经清零,这条语句是不是把bp的值存到(@+4+2+2-1)这个地址?


[解决办法]
> IDEAdr、VLF是不是分别代表(@+4+2+2-1)、(@+4+2+2-2)?

IDEAdr、VLF分别代表(@+4+2+2-1-1)、(@+4+2+2-2-1)。

> 执行 mov[bx+IDEAdr-@],bp; 前bx已经清零,这条语句是不是把bp的值存到(@+4+2+2-1)这个地址?

bx+IDEAdr-@=> 0+(@+4+2+2-1-1)-@=> 6
把bp的内容存储到DS:[bx+IDEAdr-@]处,即[DS:0006 ]处。

热点排行