bits 16
org 0x7c00
start: jmp loader
;******; ; OEM Parameter block ;********;
TIMES 0Bh-$+start DB 0; THIS LINE
bpbBytesPerSector: DW 512
bpbSectorsPerCluster: DB 1
bpbReservedSectors: DW 1
bpbNumberOfFATs: DB 2
bpbRootEntries: DW 224
bpbTotalSectors: DW 2880
bpbMedia: DB 0xF0
bpbSectorsPerFAT: DW 9
bpbSectorsPerTrack: DW 18
bpbHeadsPerCylinder: DW 2
bpbHiddenSectors: DD 0
bpbTotalSectorsBig: DD 0
bsDriveNumber: DB 0
bsUnused: DB 0
bsExtBootSignature: DB 0x29
bsSerialNumber: DD 0xa0a1a2a3
bsVolumeLabel: DB "MOS FLOPPY "
bsFileSystem: DB "FAT12 "
;******** ; Bootloader Entry Point ;**********;
loader:
cli
hlt
times 510 - ($-$$) db 0
dw 0xAA55
现在的问题是我不太明白 TIMES 0bh-$+start 在这种情况下的评估结果。例如 $-$$ = 程序的大小。如果有人可以向我解释 LODSB 语法,那将是非常有益的。另外,为什么在每个 bpb 和 bs 语句之后都有一个 : 符号?: 符号不是表示新部分的开始吗,就像这个程序中的加载程序部分或开始部分一样。请详细解释以下如何评估答案。
谢谢。