Лабы по МПО / Anton / Otchet_Lab1_Metr
.docЗадание
Для заданного варианта программы обработки данных, представленной на языке Паскаль, разработать вычислительный алгоритм и варианты программ его реализации на языках программи-рования Си и Ассемблер. Добиться, чтобы программы на Паскале и Си были работоспособны и давали корректные результаты (это потребуется в дальнейшем при проведении с ними измерительных экспериментов). Для получения ассемблерного представления программы можно либо самостоятельно написать код на ассемблере, реализующий заданный алгоритм, либо установить опцию "Code generation/Generate assembler source" при компиляции текста программы, представленной на языке Си. При этом в ассемблерном представлении программы нужно удалить директивы описаний и отладочные директивы, оставив только исполняемые операторы.
Примечание!
******************************************************************
В заданных на Паскале вариантах программ обработки данных важен только вычислительный алгоритм, реализуемый программой. Поэтому для получения более корректных оценок характеристик программ следует учитывать только вычислительные операторы и по возможности исключить операторы, обеспечивающие интерфейс с пользователем и выдачу текстовых сообщений.
В сути алгоритма, реализуемого программой, нужно разобраться достаточно хорошо для возможности внесения в программу модификаций, выполняемых в дальнейшем с целью проведения измерений и улучшения характеристик качества программы.
Для измеряемых версий программ в дальнейшем нужно будет исключить операции ввода данных с клавиатуры и вывода на печать, потребляющие основную долю ресурса времени при выполнении программы. Поэтому можно уже в этой работе предусмотреть соответствующие преобразования исходной программы.
******************************************************************
Для каждой из разработанных программ (включая исходную программу на Паскале) определить следующие метрические характеристики (по Холстеду):
1. Измеримые характеристики программ:
- число простых(отдельных)операторов, в данной реализации;
- число простых (отдельных) операндов, в данной реализации;
- общее число всех операторов в данной реализации;
- общее число всех операндов в данной реализации;
- число вхождений j-го оператора в тексте программы;
- число вхождений j-го операнда в тексте программы;
- словарь программы;
- длину программы.
2. Расчетные характеристики программы:
- длину программы;
- реальный, потенциальный и граничный объемы программы;
- уровень программы;
- интеллектуальное содержание программы;
- работа программиста;
- время программирования;
- уровень используемого языка программирования;
-
ожидаемое число ошибок в программе.
Для каждой характеристики следует рассчитать как саму характеристику, так и ее оценку.
Расчет оценок программ выполнить двумя способами:
1) вручную или с помощью одного из доступных пакетов математических вычислений DERIVE, MATHCAD или MATLAB.
2) с помощью программы автоматизации расчета метрик Холстеда, краткая инструкция по работе с которой приведена в файле usage.rtf (для С- и Паскаль-версий программ).
Для варианта расчета с использованием программы автоматизации желательно провести анализ влияния учета тех или иных групп операторов исследуемой программы на вычисляемые характеристики за счет задания разных ключей запуска.
Результаты расчетов представить в виде таблиц с текстовыми комментариями.
Реализация
Программа 22. Интегрирование методом Симпсона
На Паскале
program plab;
const tol = 1.0E-4;
var sum,upper,lower,
erf,twopi : real;
function fx(x: real): real;
begin
fx:=exp(-x*x)
end;
procedure simps(lower,upper,tol : real; var sum : real);
var i : integer;
x,delta_x,even_sum,
odd_sum,end_sum,
sum1 : real;
pieces : integer;
begin
pieces:=2;
delta_x:=(upper-lower)/pieces;
odd_sum:=fx(lower+delta_x);
even_sum:=0.0;
end_sum:=fx(lower)+fx(upper);
sum:=(end_sum+4.0*odd_sum)*delta_x/3.0;
repeat
pieces:=pieces*2;
sum1:=sum;
delta_x:=(upper-lower)/pieces;
even_sum:=even_sum+odd_sum;
odd_sum:=0.0;
for i:=1 to pieces div 2 do
begin
x:=lower+delta_x*(2.0*i-1.0);
odd_sum:=odd_sum+fx(x)
end;
sum:=(end_sum+4.0*odd_sum+2.0*even_sum)*delta_x/3.0;
until abs(sum-sum1)<=abs(tol*sum1)
end;
begin
twopi:=2.0/sqrt(pi);
lower:=0.0;
upper:=1;
if upper<0.0 then
begin
simps(lower,upper,tol,sum);
erf:=twopi*sum;
end
end.
Statistics for module plab.lxm
=====================================
The number of different operators : 19
The number of different operands : 25
The total number of operators : 87
The total number of operands : 98
Dictionary ( D) : 44
Length ( N) : 185
Length estimation ( ^N) : 196.807
Volume ( V) : 1009.99
Potential volume ( *V) : 15.5098
Limit volume (**V) : 25.8496
Programming level ( L) : 0.0153563
Programming level estimation ( ^L) : 0.0268528
Intellect ( I) : 27.1212
Time of programming ( T) : 3653.93
Time estimation ( ^T) : 2222.93
Programming language level (lambda) : 0.238173
Work on programming ( E) : 65770.8
Error ( B) : 0.543126
Error estimation ( ^B) : 0.336665
Table:
====================================
Operators:
| 1 | 18 | ()
| 2 | 11 | *
| 3 | 8 | +
| 4 | 5 | -
| 5 | 6 | /
| 6 | 1 | <
| 7 | 1 | <=
| 8 | 20 | =
| 9 | 2 | abs
| 10 | 1 | const
| 11 | 1 | exp
| 12 | 1 | for
| 13 | 5 | fx
| 14 | 1 | if
| 15 | 1 | program
| 16 | 1 | real
| 17 | 1 | repeat
| 18 | 2 | simps
| 19 | 1 | sqrt
Operands:
| 1 | 4 | 0.0
| 2 | 2 | 1
| 3 | 1 | 1.0
| 4 | 1 | 1.0E-4
| 5 | 3 | 2
| 6 | 3 | 2.0
| 7 | 2 | 3.0
| 8 | 2 | 4.0
| 9 | 7 | delta_x
| 10 | 4 | end_sum
| 11 | 2 | erf
| 12 | 5 | even_sum
| 13 | 1 | fx
| 14 | 2 | i
| 15 | 9 | lower
| 16 | 8 | odd_sum
| 17 | 1 | pi
| 18 | 7 | pieces
| 19 | 1 | plab
| 20 | 8 | sum
| 21 | 4 | sum1
| 22 | 4 | tol
| 23 | 3 | twopi
| 24 | 8 | upper
| 25 | 6 | x
На С++
const double tol = 1.0E-4;
double sum, upper, lower, erf, twopi;
double fx(double x)
{
return exp(-x * x);
}
double simps(double lower,double upper,double tol)
{
int i;
double x,delta_x,even_sum,odd_sum,end_sum, sum1;
int pieces;
double sum;
pieces = 2;
delta_x = (upper - lower) / pieces;
odd_sum = fx(lower + delta_x);
even_sum = 0.0;
end_sum = fx(lower) + fx(upper);
sum = (end_sum + 4.0 * odd_sum) * delta_x / 3.0;
do
{
pieces = pieces * 2;
sum1 = sum;
delta_x = (upper - lower) / pieces;
even_sum = even_sum + odd_sum;
odd_sum = 0.0;
for (i = 1; i <= (pieces / 2); i++)
{
x = lower + delta_x * (2.0 * i - 1.0);
odd_sum = odd_sum + fx(x);
}
sum = (end_sum + 4.0 * odd_sum + 2.0 * even_sum) * delta_x / 3.0;
}
while (abs(sum - sum1) > abs(tol * sum1));
return sum;
}
void main ()
{
double res;
double pi = 3.14159265359;
done = false;
twopi = 2.0 / sqrt(pi);
lower = 0.0;
upper = 1;
if (upper >= 0.0)
{
res = simps(lower,upper,tol);
erf = twopi * res;
}
}
Statistics for module labmet.lxm
=====================================
The number of different operators : 22
The number of different operands : 27
The total number of operators : 99
The total number of operands : 105
Dictionary ( D) : 49
Length ( N) : 204
Length estimation ( ^N) : 226.489
Volume ( V) : 1145.4
Potential volume ( *V) : 15.5098
Limit volume (**V) : 25.8496
Programming level ( L) : 0.0135409
Programming level estimation ( ^L) : 0.0233766
Intellect ( I) : 26.7756
Time of programming ( T) : 4699.34
Time estimation ( ^T) : 3022.18
Programming language level (lambda) : 0.210017
Work on programming ( E) : 84588.1
Error ( B) : 0.64232
Error estimation ( ^B) : 0.3818
Table:
====================================
Operators:
| 1 | 12 | ()
| 2 | 11 | *
| 3 | 8 | +
| 4 | 1 | ++
| 5 | 13 | ,
| 6 | 4 | -
| 7 | 6 | /
| 8 | 1 | <=
| 9 | 23 | =
| 10 | 1 | >
| 11 | 1 | >=
| 12 | 1 | _-
| 13 | 2 | abs
| 14 | 1 | dowhile
| 15 | 1 | exp
| 16 | 1 | for
| 17 | 5 | fx
| 18 | 1 | if
| 19 | 1 | main
| 20 | 2 | return
| 21 | 2 | simps
| 22 | 1 | sqrt
Operands:
| 1 | 4 | 0.0
| 2 | 2 | 1
| 3 | 1 | 1.0
| 4 | 1 | 1.0E-4
| 5 | 3 | 2
| 6 | 3 | 2.0
| 7 | 2 | 3.0
| 8 | 1 | 3.14159265359
| 9 | 2 | 4.0
| 10 | 7 | delta_x
| 11 | 1 | done
| 12 | 4 | end_sum
| 13 | 2 | erf
| 14 | 5 | even_sum
| 15 | 1 | false
| 16 | 5 | i
| 17 | 9 | lower
| 18 | 8 | odd_sum
| 19 | 2 | pi
| 20 | 7 | pieces
| 21 | 3 | res
| 22 | 7 | sum
| 23 | 4 | sum1
| 24 | 4 | tol
| 25 | 3 | twopi
| 26 | 8 | upper
| 27 | 6 | x
С помощью MS Visual C++ был сгенерирован код
На Ассемблере
?fx@@YANN@Z PROC NEAR
push ebp
mov ebp, esp
sub esp, 64
push ebx
push esi
push edi
lea edi, DWORD PTR [ebp-64]
mov ecx, 16
mov eax, -858993460
rep stosd
fld QWORD PTR _x$[ebp]
fchs
fmul QWORD PTR _x$[ebp]
sub esp, 8
fstp QWORD PTR [esp]
call _exp
add esp, 8
pop edi
pop esi
pop ebx
add esp, 64
cmp ebp, esp
call __chkesp
mov esp, ebp
pop ebp
ret 0
?fx@@YANN@Z ENDP
?simps@@YANNNN@Z PROC NEAR
push ebp
mov ebp, esp
sub esp, 136
push ebx
push esi
push edi
lea edi, DWORD PTR [ebp-136]
mov ecx, 34
mov eax, -858993460
rep stosd
mov DWORD PTR _pieces$[ebp], 2
fld QWORD PTR _upper$[ebp]
fsub QWORD PTR _lower$[ebp]
fidiv DWORD PTR _pieces$[ebp]
fstp QWORD PTR _delta_x$[ebp]
fld QWORD PTR _lower$[ebp]
fadd QWORD PTR _delta_x$[ebp]
sub esp, 8
fstp QWORD PTR [esp]
call ?fx@@YANN@Z
add esp, 8
fstp QWORD PTR _odd_sum$[ebp]
mov DWORD PTR _even_sum$[ebp], 0
mov DWORD PTR _even_sum$[ebp+4], 0
mov eax, DWORD PTR _lower$[ebp+4]
push eax
mov ecx, DWORD PTR _lower$[ebp]
push ecx
call ?fx@@YANN@Z
fstp QWORD PTR -72+[ebp]
add esp, 8
mov edx, DWORD PTR _upper$[ebp+4]
push edx
mov eax, DWORD PTR _upper$[ebp]
push eax
call ?fx@@YANN@Z
add esp, 8
fadd QWORD PTR -72+[ebp]
fstp QWORD PTR _end_sum$[ebp]
fld QWORD PTR __real@8@40018000000000000000
fmul QWORD PTR _odd_sum$[ebp]
fadd QWORD PTR _end_sum$[ebp]
fmul QWORD PTR _delta_x$[ebp]
fdiv QWORD PTR __real@8@4000c000000000000000
fstp QWORD PTR _sum$[ebp]
mov ecx, DWORD PTR _pieces$[ebp]
push ecx
push OFFSET FLAT:??_C@_02MECO@?$CFd?$AA@
call _printf
add esp, 8
mov edx, DWORD PTR _sum$[ebp+4]
push edx
mov eax, DWORD PTR _sum$[ebp]
push eax
push OFFSET FLAT:??_C@_02JBAA@?$CFf?$AA@
call _printf
add esp, 12
$L2033:
mov ecx, DWORD PTR _pieces$[ebp]
shl ecx, 1
mov DWORD PTR _pieces$[ebp], ecx
mov edx, DWORD PTR _sum$[ebp]
mov DWORD PTR _sum1$[ebp], edx
mov eax, DWORD PTR _sum$[ebp+4]
mov DWORD PTR _sum1$[ebp+4], eax
fld QWORD PTR _upper$[ebp]
fsub QWORD PTR _lower$[ebp]
fidiv DWORD PTR _pieces$[ebp]
fstp QWORD PTR _delta_x$[ebp]
fld QWORD PTR _even_sum$[ebp]
fadd QWORD PTR _odd_sum$[ebp]
fstp QWORD PTR _even_sum$[ebp]
mov DWORD PTR _odd_sum$[ebp], 0
mov DWORD PTR _odd_sum$[ebp+4], 0
mov DWORD PTR _i$[ebp], 1
jmp SHORT $L2036
$L2037:
mov ecx, DWORD PTR _i$[ebp]
add ecx, 1
mov DWORD PTR _i$[ebp], ecx
$L2036:
mov eax, DWORD PTR _pieces$[ebp]
cdq
sub eax, edx
sar eax, 1
cmp DWORD PTR _i$[ebp], eax
jg SHORT $L2038
fild DWORD PTR _i$[ebp]
fadd ST(0), ST(0)
fsub QWORD PTR __real@8@3fff8000000000000000
fmul QWORD PTR _delta_x$[ebp]
fadd QWORD PTR _lower$[ebp]
fstp QWORD PTR _x$[ebp]
mov edx, DWORD PTR _x$[ebp+4]
push edx
mov eax, DWORD PTR _x$[ebp]
push eax
call ?fx@@YANN@Z
add esp, 8
fadd QWORD PTR _odd_sum$[ebp]
fstp QWORD PTR _odd_sum$[ebp]
jmp SHORT $L2037
$L2038:
fld QWORD PTR __real@8@40018000000000000000
fmul QWORD PTR _odd_sum$[ebp]
fadd QWORD PTR _end_sum$[ebp]
fld QWORD PTR __real@8@40008000000000000000
fmul QWORD PTR _even_sum$[ebp]
faddp ST(1), ST(0)
fmul QWORD PTR _delta_x$[ebp]
fdiv QWORD PTR __real@8@4000c000000000000000
fstp QWORD PTR _sum$[ebp]
fld QWORD PTR _sum$[ebp]
fsub QWORD PTR _sum1$[ebp]
call __ftol
push eax
call _abs
add esp, 4
mov esi, eax
fld QWORD PTR _tol$[ebp]
fmul QWORD PTR _sum1$[ebp]
call __ftol
push eax
call _abs
add esp, 4
cmp esi, eax
jg $L2033
fld QWORD PTR _sum$[ebp]
pop edi
pop esi
pop ebx
add esp, 136
cmp ebp, esp
call __chkesp
mov esp, ebp
pop ebp
ret 0
?simps@@YANNNN@Z ENDP
_main PROC NEAR
push ebp
mov ebp, esp
sub esp, 80
push ebx
push esi
push edi
lea edi, DWORD PTR [ebp-80]
mov ecx, 20
mov eax, -858993460
rep stosd
mov DWORD PTR _pi$[ebp], 1413754602
mov DWORD PTR _pi$[ebp+4], 1074340347
mov BYTE PTR ?done@@3_NA, 0
mov eax, DWORD PTR _pi$[ebp+4]
push eax
mov ecx, DWORD PTR _pi$[ebp]
push ecx
call _sqrt
add esp, 8
fdivr QWORD PTR __real@8@40008000000000000000
fstp QWORD PTR ?twopi@@3NA
mov DWORD PTR ?lower@@3NA, 0
mov DWORD PTR ?lower@@3NA+4, 0
$L2043:
push OFFSET FLAT:?upper@@3NA
mov ecx, OFFSET FLAT:?cin@@3Vistream_withassign@@A
call ??5istream@@QAEAAV0@AAN@Z
fld QWORD PTR ?upper@@3NA
fcomp QWORD PTR __real@8@00000000000000000000
fnstsw ax
test ah, 1
je SHORT $L2046
mov BYTE PTR ?done@@3_NA, 1
jmp SHORT $L2047
$L2046:
mov edx, DWORD PTR _tol+4
push edx
mov eax, DWORD PTR _tol
push eax
mov ecx, DWORD PTR ?upper@@3NA+4
push ecx
mov edx, DWORD PTR ?upper@@3NA
push edx
mov eax, DWORD PTR ?lower@@3NA+4
push eax
mov ecx, DWORD PTR ?lower@@3NA
push ecx
call ?simps@@YANNNN@Z
add esp, 24
fstp QWORD PTR _res$[ebp]
fld QWORD PTR ?twopi@@3NA
fmul QWORD PTR _res$[ebp]
fstp QWORD PTR ?erf@@3NA
mov edx, DWORD PTR ?upper@@3NA+4
push edx
mov eax, DWORD PTR ?upper@@3NA
push eax
push OFFSET FLAT:??_C@_02JBAA@?$CFf?$AA@
call _printf
add esp, 12
mov ecx, DWORD PTR ?erf@@3NA+4
push ecx
mov edx, DWORD PTR ?erf@@3NA
push edx
push OFFSET FLAT:??_C@_03FBAH@?$CFf?6?$AA@
call _printf
add esp, 12
$L2047:
xor eax, eax
mov al, BYTE PTR ?done@@3_NA
test eax, eax
je $L2043
pop edi
pop esi
pop ebx
add esp, 80
cmp ebp, esp
call __chkesp
mov esp, ebp
pop ebp
ret 0
_main ENDP
Расчет метрик Холстеда производился вручную.
Число уникальных операторов (n1):
Число уникальных операндов (n2):
Общее число операторов (N1):
Общее число операндов (N2):
Алфавит (n): n1+n2
Экспериментальна длина программы (Nэ): N1+N2
Теоретическая длина программы (Nт): n1∙log2(n1) + n2∙log2(n2)
Объём программы (V): Nэ∙log2(n)
Потенциальный объём (V*): (N1*+N2*)∙log2(n1* + n2*) = 15,5098
Уровень программы (L): V* / V (от 0 до 1)
Сложность программы (S): L-1
Ожидание уровня программы (L^): (2/n1)∙(n2/N2)
Интеллект программы (I): L^ ∙ V
Работа по программированию (Е): V∙S ≡ V/L
Время кодирования (T): E/St (St – число Страуда от 5 до 20, берем 10)
Ожидаемое время кодирования (T^): n1∙N2 ∙ N∙log2(n) / (2∙St∙n2)
Уровень языка программирования (Lam): (V*)∙(V*)/V
Уровень ошибок (В): V / 3000
Число уникальных операторов (n1): |
41 |
Число уникальных операндов (n2): |
61 |
Общее число операторов (N1): |
229 |
Общее число операндов (N2): |
272 |
Алфавит (n): |
102,0000 |
Экспериментальна длина программы (Nэ): |
501,0000 |
Теоретическая длина программы (Nт): |
581,4346 |
Объём программы (V): |
3342,8851 |
Потенциальный объём (V*): |
15,5098 |
Уровень программы (L): |
0,0046 |
Сложность программы (S): |
215,5337 |
Ожидание уровня программы (L^): |
0,0109 |
Интеллект программы (I): |
36,5703 |
Работа по программированию (Е): |
720504,5047 |
Время кодирования (T): |
72050,4505 |
Ожидаемое время кодирования (T^): |
30557,2579 |
Уровень языка программирования (Lam): |
0,0720 |
Уровень ошибок (В): |
1,1143 |
Table:
====================================
Operators:
| 1 |
40 |
| push |
| 2 |
57 |
| mov |
| 3 |
6 |
| sub |
| 4 |
3 |
| lea |
| 5 |
3 |
| rep |
| 6 |
13 |
| fld |
| 7 |
1 |
| fchs |
| 8 |
9 |
| fmul |
| 9 |
15 |
| fstp |
| 10 |
17 |
| add |
| 11 |
5 |
| cmp |
| 12 |
12 |
| pop |
| 13 |
3 |
| ret |
| 14 |
4 |
| fsub |
| 15 |
2 |
| fidiv |
| 16 |
2 |
| fdiv |
| 17 |
1 |
| shl |
| 18 |
1 |
| cdq |
| 19 |
1 |
| sar |
| 20 |
1 |
| fild |
| 21 |
1 |
| faddp |
| 22 |
1 |
| fdivr |
| 23 |
2 |
| fnstsw |
| 24 |
2 |
| test |
| 25 |
1 |
| xor |
| 26 |
1 |
| call _exp |
| 27 |
3 |
| call __chkesp |
| 28 |
4 |
| call ?fx@@YANN@Z |
| 29 |
4 |
| call _printf |
| 30 |
2 |
| call _ftol |
| 31 |
2 |
| call _abs |
| 32 |
1 |
| call _sqrt |
| 33 |
1 |
| call ??5istream@@QAEAAV0@AAN@Z |
| 34 |
1 |
| call ?simps@@YANNNN@Z |
| 35 |
1 |
| jmp SHORT $L2036 |
| 36 |
1 |
| jmp SHORT $L2037 |
| 37 |
1 |
| jmp SHORT $L2047 |
| 38 |
1 |
| jg SHORT $L2033 |
| 39 |
1 |
| jg SHORT $L2038 |
| 40 |
1 |
| je SHORT $L2043 |
| 41 |
1 |
| je SHORT $L2046 |
Operands:
| 1 |
15 |
| ebp |
| 2 |
32 |
| esp |
| 3 |
6 |
| ebx |
| 4 |
8 |
| esi |
| 5 |
9 |
| edi |
| 6 |
22 |
| ecx |
| 7 |
33 |
| eax |
| 8 |
3 |
| ST(0) |
| 9 |
1 |
| ST(1) |
| 10 |
1 |
| ax |
| 11 |
1 |
| ah |
| 12 |
17 |
| edx |
| 13 |
1 |
| al |
| 14 |
2 |
| 64 |
| 15 |
1 |
| 16 |
| 16 |
3 |
| -858993460 |
| 17 |
8 |
| 8 |
| 18 |
10 |
| 0 |
| 19 |
2 |
| 136 |
| 20 |
1 |
| 34 |
| 21 |
1 |
| 2 |
| 22 |
2 |
| -72 |
| 23 |
2 |
| 4 |
| 24 |
3 |
| 12 |
| 25 |
6 |
| 1 |
| 26 |
2 |
| 80 |
| 27 |
1 |
| 20 |
| 28 |
1 |
| 14 |
| 29 |
3 |
QWORD PTR _x$[ebp] |
| 30 |
1 |
DWORD PTR [ebp-64] |
| 31 |
2 |
QWORD PTR [esp] |
| 32 |
1 |
DWORD PTR [ebp-136] |
| 33 |
7 |
DWORD PTR _pieces$[ebp] |
| 34 |
2 |
QWORD PTR _upper$[ebp] |
| 35 |
4 |
QWORD PTR _lower$[ebp] |
| 36 |
6 |
QWORD PTR _delta_x$[ebp] |
| 37 |
6 |
QWORD PTR _odd_sum$[ebp] |
| 38 |
1 |
DWORD PTR _even_sum$[ebp], |
| 39 |
1 |
DWORD PTR _even_sum$[ebp+4], |
| 40 |
1 |
DWORD PTR _lower$[ebp+4] |
| 41 |
2 |
QWORD PTR -72+[ebp] |
| 42 |
1 |
DWORD PTR _upper$[ebp+4] |
| 43 |
3 |
QWORD PTR _end_sum$[ebp] |
| 44 |
4 |
QWORD PTR _sum$[ebp] |
| 45 |
2 |
DWORD PTR _sum$[ebp+4] |
| 46 |
1 |
DWORD PTR _sum1$[ebp+4] |
| 47 |
3 |
QWORD PTR _even_sum$[ebp] |
| 48 |
1 |
DWORD PTR _odd_sum$[ebp], |
| 49 |
1 |
DWORD PTR _odd_sum$[ebp+4] |
| 50 |
5 |
DWORD PTR _i$[ebp] |
| 51 |
1 |
DWORD PTR _x$[ebp+4] |
| 52 |
1 |
DWORD PTR _x$[ebp] |
| 53 |
6 |
QWORD PTR _odd_sum$[ebp] |
| 54 |
2 |
QWORD PTR _sum1$[ebp] |
| 55 |
1 |
QWORD PTR _tol$[ebp] |
| 56 |
1 |
DWORD PTR [ebp-80] |
| 57 |
2 |
DWORD PTR _pi$[ebp] |
| 58 |
1 |
1,074E+09 |
| 59 |
2 |
DWORD PTR _pi$[ebp+4] |
| 60 |
2 |
QWORD PTR _res$[ebp] |