Advertisement
Guest User

Untitled

a guest
Apr 20th, 2017
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.             org 100h
  2. section     .text
  3. global      _start
  4.  
  5. _start:     mov DL, 80h
  6.             call readSector
  7.  
  8.             mov DX, sector;
  9.             call printData
  10.  
  11.             ; Call to exit
  12.             mov ax, 0x4c00      ; ah == 0x4c al == 0x00
  13.             int 0x21
  14.  
  15. ; DL - Drive number (80h first HDD)
  16. getDriveParameters:
  17.             mov AH, 08h
  18.             int 13h
  19.             mov [driveParameters], AH
  20.             mov [driveParameters+1], BL
  21.             mov [driveParameters+2], DL
  22.             mov [driveParameters+3], DH
  23.             mov [driveParameters+4], CL
  24.             mov [driveParameters+5], CH
  25.             mov [driveParameters+6], byte 36        ; $
  26.             ret
  27.  
  28. ;   DL - номер диска (0=диск A...; 80H=тв.диск 0; 81H=тв.диск 1)
  29. ;   DH - номер головки чтения/записи
  30. ;   CH - номер дорожки (цилиндра)(0-n) =¬
  31. ;   CL - номер сектора (1-n) ===========¦== См. замечание ниже.
  32. ;   AL - число секторов (в сумме не больше чем один цилиндр)
  33. ;ES:BX - адрес буфера вызывающей программы
  34. readSector:
  35.             mov BX, sector
  36.             mov AH, 02h    
  37.             mov DL, 80h    
  38.             mov CH, 0      
  39.             mov CL, 1      
  40.             mov AL, 8      
  41.  
  42.             int 13h
  43.             mov [sector+4096], AH
  44.             mov [sector+4097], byte 24h
  45.             ret
  46.  
  47. ;DS:DX = адрес строки, заканчивающейся символом '$' (ASCII 24H)
  48. printData: 
  49.             mov AH, 0x9
  50.             int 0x21
  51.             ret
  52.  
  53. section     .data
  54. driveParameters times 7 db 0
  55. sector          times 4098 db 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement