首页
社区
课程
招聘
菜菜请教关于int13h的问题
发表于: 2004-12-14 10:48 3777

菜菜请教关于int13h的问题

2004-12-14 10:48
3777
扩展int13h的寄存器约定是应该用ds:si还是ds:di指向dap怎么不同文章上说法不一致啊?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
2
; INT 13 extended read =
-------------------------------------------------------------------------=
-------                                                                  =

                                ; Entry:AH - 42h                         =
                                                                       =20
                                ;       DL - Drive number                =
                                                                       =20
                                ;       DS:SI - Disk address packet      =
                                                                       =20
                                ; Exit: carry clear                      =
                                                                       =20
                                ;       AH - 0                           =
                                                                       =20
                                ;       carry set                        =
                                                                       =20
                                ;       AH - error code                  =
                                                                       =20
                                ; This function transfer sectors from =
the device to memory. In the event of an error,                          =
=20
                                ; the block count field of the disk =
address packet contains the number of good blocks                        =
   =20
                                ; read before the error occurred.        =
                                                                       =20
                                ;                                        =
                                                                       =20
                                ; DS:SI ->    Device address packet   =
                                                                         =
     =20
                                ; Offset      Type         Description          =
                                                                         =
=20
                                ; 0         Byte  Packet size in bytes. Shall =
be 10h.
                                ; 1         Byte  Reserved, must be 0           =
                                                                =20
                                ; 2         Byte  Number of blocks to transfer. =
This field has a maximum value of 127 (7Fh).
                                ; 3         Byte  Reserved, must be 0           =
                                                                =20
                                ; 4         2Word Address of transfer buffer. =
The is the buffer which Read/Write operations will use            =20
                                ;               to transfer the data. This is a =
32-bit address of the form Seg:Offset.=20
                                ; 8         4word Starting logical block =
address, on the target device, of the data to be transferred.          =20
                                ;               This is a 64 bit unsigned =
linear address. If the device supports LBA addressing this          =20
                                ;               value should be passed =
unmodified. If the device does not support LBA addressing              =20
                                ;               the following formula holds =
true when the address is converted to a CHS value:                =20
                                ;               LBA =3D (C1 * H0 + H1) * S0 + =
S1 - 1                                                            =20
                                ;               where:        C1 =3D Selected Cylinder =
Number                                                         =20
                                ;                         H0 =3D Number of Heads (Maximum =
Head Number + 1)                                        =20
                                ;                         H1 =3D Selected Head Number         =
                                                    =20
                                ;                         S0 =3D Maximum Sector Number        =
                                                    =20
                                ;                         S1 =3D Selected Sector Number       =
                                                    =20
2004-12-14 10:57
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
3
INT 13 - IBM/MS INT 13 Extensions - EXTENDED WRITE
        AH = 43h
        AL = write flags
           ---v1.0,2.0---
           bit 0: verify write
           bits 7-1 reserved (0)
           ---v2.1+ ---
           00h,01h write without verify
           02h write with verify
        DL = drive number
        DS:SI -> disk address packet (see #00272)
Return: CF clear if successful
            AH = 00h
        CF set on error
            AH = error code (see #00234)
            disk address packet's block count field set to number of blocks
              successfully transferred
Note:        the BIOS returns CF set/AH=01h (invalid function) if verify is
          requested but not supported
2004-12-14 11:30
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
747
4
xiexie
2004-12-14 11:40
0
游客
登录 | 注册 方可回帖
返回
//