Assembler - язык неограниченных возможностей


. Расширение AMD 3D


Процессоры AMD, начиная с AMD К6 3D, поддерживают дополнительное расширение набора команд ММХ. В AMD 3D вводится новый тип данных — упакованные 32-битные вещественные числа, определяются новые команды (начинающиеся с PF) и несколько дополнительных команд для работы с обычными ММХ-типами данных:

  • PI2FD приемник, источник — преобразовывает упакованные 32-битные целые со знаком (двойные слова) в упакованные вещественные числа;
  • PF2ID приемник, источник — преобразовывает упакованные вещественные в упакованные целые числа со знаком (преобразование с насыщением);
  • PAVGUSB приемник, источник — вычисляет средние арифметические для упакованных 8-битных целых чисел без знака;
  • PMULHRW приемник, источник — перемножает упакованные 16-битные целые со знаком и сохраняет результаты как 16-битные целые в приемнике (при переполнениях выполняется насыщение);
  • PFACC приемник, источник — сумма вещественных чисел в приемнике помещается в младшую половину приемника, сумма вещественных чисел из источника помещается в старшую половину приемника;
  • PFADD приемник, источник — сложение упакованных вещественных чисел;
  • PFSUB приемник, источник — вычитание упакованных вещественных чисел;
  • PFSUBR приемник, источник — обратное вычитание (приемник из источника) упакованных вещественных чисел;
  • PFMUL приемник,источник — умножение упакованных вещественных чисел.

Набор команд для быстрого вычисления по итерационным формулам:

    Быстрое деление:

    xi+1 = хi(2 - bхi)

    х0 = PFRCP(b)

    х1 = PFRCPIT1(b, x0)

    х2 = PFRCPIT2(x1, x0)

    х4 = PFMUL(b, x3)

Быстрое вычисление квадратного корня:

    хi+1 = хi(3 - bxi2)/2

    х0 = PFRSQRT(b)

    х1 = PFMUL(x0, x0)

    х2 = PFRSQIT(b, x1)

    х3 = PFRCPIT2(x2, x0)

    х4 = PFMUL(b, x3)

    • PFCMPEQ приемник, источник — проверка равенства для упакованных вещественных чисел (полностью аналогично PCMPEQW);



    • Начало  Назад  Вперед