NASM:如何正确访问ssd驱动器?

问题描述 投票:0回答:1

我需要使用NASM 16位代码访问SSD驱动器。访问常规硬盘驱动器时,需要设置寄存器AX,DX,CX以选择圆柱体/磁道/扇区/扇区数(AH-选择读取扇区功能,DL-选择驱动器编号, CH-选择柱面,DH-选择盘面,CL-选择轨道上的扇区,AL-选择扇区数)。

但是,我想SSD磁盘具有其他结构,那么如何正确访问它们?

assembly nasm x86-16 hard-drive ssd
1个回答
3
投票

假设将伪造的几何图形转换为LBA(最可能的情况),“ int 0x13,ah = 0x02”最多只能处理16515072个扇区。每个扇区512字节(也是最可能的情况)达到8064 MiB或7.8 GiB。硬盘驱动器(包括SSD)的容量已经超过了大约20年。因此,“ int 0x13,ah = 0x02”不是明智的选择。

相反,对于硬盘驱动器(包括SSD),您想使用“ int 0x13,ah = 0x42”(请参阅​​http://www.ctyme.com/intr/rb-0708.htm)。该函数使用LBA地址,而不使用CHS;并且(具有64位LBA地址和每个扇区相同的512字节)可以处理(最多)8589934592 TiB驱动器。

© www.soinside.com 2019 - 2024. All rights reserved.