2010-11-05 94 views
3

我已经开始学汇编。我遇到了这些线。汇编代码说明

;*************************************************; 
; OEM Parameter block/BIOS Parameter Block 
;*************************************************; 

TIMES 0Bh-$+start DB 0 

bpbBytesPerSector:  DW 512 
bpbSectorsPerCluster: DB 1 
bpbReservedSectors:  DW 1 

我就声明 “bpbBytesPerSector:DW 512” 的第一行混淆。这里我认为DW是定义词。因此DW 512表示定义512个字表示1024个字节。现在标签是“bpbBytesPerSector”。每扇区的字节数应该是512(这是我认为的)。同样,我不明白下两行。 我完全困惑于此。有人可以解释我。提前感谢。

回答

6

否,dw装置定义字512这意味着对于一个这里分配空间并设置值到512

这是创建一个BIOS参数块(BPB)和断裂它down:

0000       TIMES 0Bh-$+start DB 0  ; allocate 11 zero bytes. 
000B bpbBytesPerSector:  DW 512      ; define one word 512 
000D bpbSectorsPerCluster: DB 1      ; define one byte 1 
000E bpbReservedSectors: DW 1      ; define one word 1 
0010 
+0

谢谢。我明白了。 – narayanpatra 2010-11-05 06:24:01

0

正如@paxdiablo已经指出的那样,这个数字就是这个词的值。当/如果你想定义的512个字像你描述的,你会使用类似的数组:

myarray dw 512 dup(?) 

这里512是重复的次数,以及?是放在每个值(“?”表示“保持未初始化”,但如果您愿意,可以指定一个值)。