• boot.asm



    org 07c00h   ; 告诉编译器程序加载到7c00处
     jmp BootSeg
    ;times  256 db 0
    BootSeg:
     mov ax, cs
     mov ds, ax
     mov es, ax

    ;置堆栈段指针 
     mov ax, 08FC0h
     mov ss, ax
     mov esp, 0FFFFh

    ;清屏
     mov cx, 0000h
     mov dx, 1850h
     mov bh, 07h
     mov ax, 0600h 
     int 10h

    ;置光标为左上角
     mov bh, 00h
     mov dx, 0000h
     mov ah, 02h
     int 10h

    ;显示 BootMessage 信息
     mov ax, BootMessage
     mov bp, ax   ; ES:BP = 串地址
     mov cx, BootMesSeg
     mov ax, 01301h  ; AH = 13,  AL = 01h
     mov bx, 000ch  ; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)
     mov dx, 0000h
     int 10h   ; 10h 号中断

    ; 将软驱的第2—5个扇区 读到
    ; 内存的0500F—0700F , 共 2 Kb 大小
    ; 柱面号(磁道):0 ,磁头:0 ,扇区号: 2
     push es
    LoadSetup :
            xor ah, ah
            xor dl, dl
            int 13h
            mov ax, 0204h  ;al=读入的扇区数
     mov cx, 0002h  
            xor dx, dx
     mov bx, 0050h
     mov es, bx 
     xor bx, bx
     int 13h   ;13h 号中断读扇区
     jc  LoadSetup
     ;软盘控制寄存器的I/O地址为3F0 - 3F7
    ; mov dl, 0  ; 停止驱动器
    ; mov dx, 0x3f2
    ; mov al, 0x0c
    ; out dx, al

     call LoadDisplay
     pop es

    ;显示说明加载setup文件

     mov ax, JmpMessage
     mov bp, ax   ; ES:BP = 串地址
     mov cx, JmpMesSeg
     mov ax, 01301h  ; AH = 13,  AL = 01h
     mov bx, 000ch  ; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)
     mov dx, 0100h
     int 10h   ; 10h 号中断
     jmp     0000h:0500h

    LoadDisplay : 
     push ax
     push bx
     mov ah,0Eh

     mov al,'.'
     mov bl,0Fh 
     int 10h
     pop bx
     pop ax
     ret

    BootMessage:  db "Loading Setup..."
    BootMesSeg   equ $-BootMessage
    JmpMessage:  db "Jmp into Setup Segment"
    JmpMesSeg   equ $-JmpMessage

    times  510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为512字节
    dw  0xaa55    ; 结束标志

  • 相关阅读:
    怎么把共享文件夹显示在我的电脑
    window时间同步机制的简单介绍
    向指定服务器的指定端口发送UDP包
    窜口通信-读取时间码
    窜口通信-发送时间码
    回环网卡通信
    简单的TCP接受在转发到客户端的套接口
    国内能用的NTP服务器及和标准源的偏差值
    简单的UDP接受程序
    TCP包服务器接受程序
  • 原文地址:https://www.cnblogs.com/sunkang/p/2038829.html
Copyright © 2020-2023  润新知