能力值:
( LV13,RANK:388 )
|
-
-
2 楼
al为ax寄存器的低8位,相应的ah为ax寄存器的高8位,al长度为一个字节,ax长度为两个字节
win32以后,ax扩展为eax,变成4字节长度
而GetDriveTypeA函数的返回值只需要一个字节足够,所以只保存它的最低8位(即一个字节)即可
这时候al=eax的
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
LZ还是再仔细复习一下80x86CPU原理吧~
四个通用寄存器:AX,BX,CX,DX
都是16位寄存器,存在于早期的8086/8088类型的16位CPU中
他们各自分为两段:高八位(AH,BH,CH,DH)和低八位(AL,BL,CL,DL)
所以你这里的AL其实就是AX的低八位。
而到后来出现32位CPU之后,为了向下兼容,并没有换掉这几个寄存器,而只是在原本的16位寄存器前又加了16位
和在一起的32位寄存器命名为:EAX,EBX,ECX,EDX
而他们的低十六位还是原来的:AX,BX,CX,DX。低十六位中的高八位和低八位也还是那些没变~~
p.s.
至于64位CPU,其实一样,就是在32位寄存器前面又扩充了32位。
变成:RAX,RBX,RCX,RDX~~
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
谢谢楼上二位,小弟明白了
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
受益匪浅感谢各位老师!
|
|
|