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 ステートメントのそれぞれの後に : 記号があるのはなぜですか? : 記号は、このプログラムのローダー セクションまたは開始セクションの場合と同様に、新しいセクションの開始を意味しませんか。以下の答えがどのように評価されるかを詳しく説明してください。
ありがとう。