汇编代码说明

nar*_*tra 3 x86 assembly floppy bootloader

我已经开始学习装配.我遇到过这些问题.

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

TIMES 0Bh-$+start DB 0

bpbBytesPerSector:      DW 512
bpbSectorsPerCluster:   DB 1
bpbReservedSectors:     DW 1
Run Code Online (Sandbox Code Playgroud)

我对第一行声明"bpbBytesPerSector:DW 512"感到困惑.在这里我认为DW是定义单词.因此DW 512意味着定义512个字意味着1024个字节.现在标签是"bpbBytesPerSector".每个扇区的字节数应为512(这是我的想法).同样,我无法理解接下来的两行.我对这完全感到困惑.任何人都可以解释一下.谢谢.

pax*_*blo 6

不,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
Run Code Online (Sandbox Code Playgroud)