>Более извращенную чем х86 архитектуру я знаю только одну - Microchip PIC16
>:D.Но по общей уродливости и костыльности х86 впереди планеты всей. По-моему, у каждой архитектуры есть свои уродства. Помню, когда начинал изучать ARM, меня убило то, что при косвенной адресации, если адрес не выровнен по границе 32 бит, данные копируются с операцией вращения! То есть, если пишешь, например, что-нибудь типа
char buffer[];
...
long var = *(long*)&buffer[1];
компилятор сгенерит _правильные_ инструкции
LDR R0,[PC,buffer]
LDR R7,[R0,#0x0001]
но процессор скопирует в переменную не 4 байта подряд, начиная со второго, как было бы на всех нормальных архитектурах, а в такой последовательности: второй, третий, минус первый и нулевой! O_o При этом старые АРМы даже никаких исключений не генерят! Так что об этой милой фиче всегда приходится помнить и писать что-нибудь типа *(long __packed*)...