История изменений
Исправление Deleted, (текущая версия) :
Если ещё не понятно, то RISC не умеет части x86 команд. Представим, что оно не умеет MUL. Поэтому вместо использования MUL приходится писать такое:
xor AX, AX
mov CX, a
@l:
add AX, b
loop l
mov c, AX
как это было в 8086 :)
И XOR было быстрее, чем MOV AX, 0
И микрокод объясняет процессору, на что переписывать MUL или IMUL
Собственно, именно это и есть причина столь разного IPC у процессоров. Они уже давно у компаний представляют собой разные RISC-архитектуры с разным набором внутренних команд.
Ну и грубо говоря, если знать (одна из причин не раскрытия что именно есть в микрокоде) внутреннюю архитектуру проца, можно делать эксплойты и заставлять процессор условно вместо mov AX, DX делать MOV MSR07, AX
Исправление Deleted, :
Если ещё не понятно, то RISC не умеет части x86 команд. Представим, что оно не умеет MUL. Поэтому вместо использования MUL приходится писать такое:
xor AX, AX
mov CX, a
@l:
add AX, b
loop l
mov c, AX
как это было в 8086 :)
И XOR было быстрее, чем MOV AX, 0
И микрокод объясняет процессору, на что переписывать MUL или IMUL
Собственно, именно это и есть причина столь разного IPC у процессоров. Они уже давно у компаний представляют собой разные RISC-архитектуры с разным набором внутренних команд.
Исправление Deleted, :
Если ещё не понятно, то RISC не умеет части x86 команд. Представим, что оно не умеет MUL. Поэтому вместо использования MUL приходится писать такое:
xor AX, AX
mov CX, a
@l:
add AX, b
loop l
mov c, AX
как это было в 8086 :)
И XOR было быстрее, чем MOV AX, 0
И микрокод объясняет процессору, на что переписывать MUL или IMUL
Исправление Deleted, :
Если ещё не понятно, то RISC не умеет части x86 команд. Представим, что оно не умеет MUL. Поэтому вместо использования MUL приходится писать такое:
xor AX, AX
mov CX, a
@l:
add AX, b
loop l
mov c, AX
как это было в 8086 :)
И XOR было быстрее, чем MOV AX, 0
Исправление Deleted, :
Если ещё не понятно, то RISC не умеет части x86 команд. Представим, что оно не умеет MUL. Поэтому вместо использования MUL приходится писать такое:
xor AX, AX
mov CX, a
@l:
add AX, b
loop l
mov c, AX
как это было в 8086 :)
Исходная версия Deleted, :
Если ещё не понятно, то RISC не умеет части x86 команд. Представим, что оно не умеет MUL. Поэтому вместо использования MUL приходится писать такое:
mov AX, 0
mov CX, a
@l:
add AX, b
loop l
mov c, AX
как это было в 8086 :)