⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mkmbr.s

📁 自己以前写的 引导扇区代码。包括: fat12.asm fat16.asm fat32.asm
💻 S
字号:
;REM 重写硬盘主引导程序的测试文件
;\batsdev\bin\nasm -fbin %0 -o mkmbr.com -E \batsdev\src\debug\mbr.err
;\batsdev\bin\nasm -e %0 -o \batsdev\src\debug\mbr.dbg
;goto batend
org 0x100
BEGIN: 
    mov  ax,   0201h   
    mov  bx,   200h
    mov  cx,   1
    mov  dx,   0080h
    int  13h           ;读硬盘主引导扇区到es:200
    jnc  CHGPARTAB     ;读正确?
    xor  ax,   ax      ;不正确?磁盘复位,再读
    int  13h
    inc  si            ;次数计数器
    cmp  si,   3       ;连续读3次
    jnz  BEGIN         ;不到3次?再读
DOSREADERR:            ;3次都不正确?错误处理
    mov  dx,   DOSERRMSG
    mov  ah,  09h
    int  21h
    ret
CHGPARTAB:             ;获取分区表信息
    mov  si,  3beh
    mov  di,  7beh
    mov  cx,  040H
    CLD
    REP
    MOVSB              ;更换分区表数据
WMBOOTSECT:
    mov  ax,  0301h    ;写一个扇区
    mov  bx,  600h     ;把es:bx的内容写到主引导扇区
    mov  cx,  1
    mov  dx,  0080h    ;写第一块硬盘
    int  13h
    jnc  WMBOOTOK      ;写正确
    inc  si
    cmp  si,  3
    jnz  WMBOOTSECT
    mov  dx,   WRITERRMSG
    MOV  AH,  09H
    INT  21H
    RET
WMBOOTOK:
    mov  dx,   WRITOKMSG
    MOV  AH,  09H
    INT  21H
    RET
DOSERRMSG  db 'Read main boot sector error !',0dh,0ah,'$'
WRITERRMSG DB 'Writ main boot sector error !',0dh,0ah,'$'
WRITOKMSG  DB 'Make BATS MBR OK !',0dh,0ah,'$'
times 0x500-($-$$) db 0
incbin "mbr.bin"
;:batend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -