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;
Объяснение кода листинга программы
XMM4
- это название регистра x87 FPU, который используется для хранения 80-битных чисел с плавающей точкой.XMM1
,XMM2
иXMM3
- это также названия регистров x87 FPU, которые используются для хранения дополнительных 80-битных чисел с плавающей точкой.addps
- это инструкция x86, которая выполняет сложение с плавающей точкой для строк чисел, представленных в формате Single Instruction, Multiple Data (SIMD).- В данном случае инструкция
addps
выполняет сложение четырех 80-битных чисел с плавающей точкой, представленных в регистрах XMM4, XMM1, XMM2 и XMM3. - Результат сложения сохраняется в регистре XMM4.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д