Pascal to assembler

Узнай цену своей работы

Формулировка задачи:

Прошу о помощи, мой код на паскале, хотелось бы увидеть только на ассемблере, эта прога складывает числа по главной диагонали... смог пока только так))
var 
   x, y, z, c: array [0..3] of single; 
begin 
   x[0]:=...; x[1]:=...; x[2]:=...; x[3]:=...; 
   y[0]:=...; y[1]:=...; y[2]:=...; y[3]:=...; 
   c[0]:=...; c[1]:=...; c[2]:=...; c[3]:=...; 
   asm 
    mov si,0;
      movups XMM0, x; {в регистре XMM0 находится массив x} 
      movups XMM1, y; {в регистре XMM1 находится массив y} 
      movups XMM0,x[si];
add si,2;
movups XMM2,y[si];
add si,2
movups XMM3,c[si];
      addps XMM4, XMM1,XMM2,XMM3; 
      {теперь в XMM0 четыре суммы, вычисленные параллельно} 
      movups z, XMM4; {теперь в z находится значение XMM0} 
   end; 
end;

Решение задачи: «Pascal to assembler»

textual
Листинг программы
addps XMM4, XMM1,XMM2,XMM3;

Объяснение кода листинга программы

  1. XMM4 - это название регистра x87 FPU, который используется для хранения 80-битных чисел с плавающей точкой.
  2. XMM1, XMM2 и XMM3 - это также названия регистров x87 FPU, которые используются для хранения дополнительных 80-битных чисел с плавающей точкой.
  3. addps - это инструкция x86, которая выполняет сложение с плавающей точкой для строк чисел, представленных в формате Single Instruction, Multiple Data (SIMD).
  4. В данном случае инструкция addps выполняет сложение четырех 80-битных чисел с плавающей точкой, представленных в регистрах XMM4, XMM1, XMM2 и XMM3.
  5. Результат сложения сохраняется в регистре XMM4.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5