У меня есть вопрос о проверке адреса, выровнен ли он по границе N-BYTE ....
считают, что мы находимся в режиме 64-БИТ ....
на C языке, мы делаем что-то вроде этого:
if(((unsigned long) str & 15) == 0) {}
здесь мы проверяем весь 64-битный адрес (тестовая строка & 15)
но я видел сгенерированный ассемблерный код и сгенерированный код:
test dil, 15
на самом деле, он собирается протестировать только младший 8-битный !!! так почему бы просто протестировать младший 8-битный и это не что-то вроде
test rdi, 15
или даже этого
test edi, 15
?