手册能查到。x86(包括x64)的对齐检查通过下面三个东西控制是否启用:
1、CR0寄存器的AM位(Alignment mask)。ring 0才能修改这个位。要测试必须写个kernel module。
2、EFLAGS寄存器的AC位(Alignment check)。ring 3就能修改这个位。
3、当前处于ring 3。
linux和windows对此的处理也可能不一样。windows允许通过SetErrorMode()选择是否让os把对齐异常抛给app自己处理。
【 在 stub 的大作中提到: 】
: 别的不知道,x86前两天刚试过,是这样的
--
FROM 114.241.227.*