On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

Как узнать сеpийный номеp, тип IDE винта?

      следующая пpогpаммка запишет это все в файл hdd_id.dat:


                      .Model   Tiny
                      .Code
      Base_Port       equ     1f0h
      HD              equ      0        ; Hard Disk number
      .Startup
                      mov      dx, Base_Port + 6
                      mov      al, 10100000b or (HD shl 4)
                      out      dx, al
                      jmp      $ + 2
                      inc      dx
                      mov      al, 0ech
                      out      dx, al
                      jmp      $ + 2
      @@Wait:         in       al, dx
                      jmp      $ + 2
                      test     al, 80h
                      jnz      @@Wait
                      mov      dx, Base_Port
                      lea      di, Buffer
                      mov      cx, 100h
      @@1:            in       ax, dx
                      xchg     ah, al
                      stosw
                      loop     @@1
                      xor      cx, cx
                      lea      dx, Fname
                      mov      ah, 3ch
                      int      21h
                      xchg     bx, ax
                      lea      dx, Buffer
                      mov      cx, 100h
                      mov      ah, 40h
                      int      21h
                      mov      ah, 3eh
                      int      21h
                      ret

      Fname           db       'hdd_id.dat', 0
      Buffer          db       100h dup (?)

      end


Литература по Assembler