Assembly 汇编代码的解释
我已经开始学习组装。我遇到了这些问题Assembly 汇编代码的解释,assembly,x86,bootloader,floppy,Assembly,X86,Bootloader,Floppy,我已经开始学习组装。我遇到了这些问题 ;*************************************************; ; OEM Parameter block / BIOS Parameter Block ;*************************************************; TIMES 0Bh-$+start DB 0 bpbBytesPerSector: DW 512 bpbSectorsPerCluster:
;*************************************************;
; OEM Parameter block / BIOS Parameter Block
;*************************************************;
TIMES 0Bh-$+start DB 0
bpbBytesPerSector: DW 512
bpbSectorsPerCluster: DB 1
bpbReservedSectors: DW 1
我对声明的第一行感到困惑
“bpbBytesPerSector:DW 512”。在这里,我认为DW是一个定义词。所以DW512意味着定义512个字意味着1024个字节。现在标签是“bpbBytesPerSector”。每个扇区的字节数应该是512(我就是这么认为的)。同样,我也不明白接下来的两行。
我完全搞不懂这一点。谁能给我解释一下吗。提前谢谢。不,
dw
表示定义单个单词512。这意味着在这里为一个单词分配空间,并将值设置为512
这是创建BIOS参数块(BPB)并将其分解:
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
正如@paxdiablo已经指出的,数字只是单词的值。当/如果您想要定义一个由512个单词组成的数组,如您所述,您可以使用以下内容:
myarray dw 512 dup(?)
此处,512
是重复次数,?
是每个重复中要输入的值(“?”表示“未初始化”,但如果愿意,可以指定一个值)