各位好,如题 我想先写个小程序,尝试一下直接从硬盘读取数据,但是这还没成功。 要用的方法是,与1f0h到1f7h端口读写信息,于是编写汇编代码,比如,程序流开头是: mov dx,1f6h ; 要读入的磁盘号及磁头号 mov al,0a0h ;磁盘0,磁头0 out dx,al 这是向1f6h端口写数据。 调试时发现,程序走到out指令时,会有“Segmentation fault”: Program received signal SIGSEGV, Segmentation fault. 这是怎么...
由于需要,我需要通过C获取到CPU和硬盘的序列号,其中了解到用内嵌汇编的方式通过cpuid指令获取CPU的序列号。 由于对汇编一窍不通,所以上来听听大家的见解,求大牛们指个方向。
今天一直在找sata硬盘序列号的C读取方法, 找了良久, 终于找到一份可行的代码, 遂改之, 下面这段代码在as4测试通过, (此篇文章修改自: http://samba.org/~tridge/ctdb/utils/scsi_io/scsi_io.c) #include unistd.h> #include fcntl.h> #include stdio.h> #include string.h> #include errno.h> #include sys/ioctl.h> #include scsi/sg.h> #define SCSI_TIMEOUT 5000 /* ms */ static char *device = "/dev/sda"; int scsi_i...