2.2 Разработка ядра программы вычисления рабочего полинома
В таблице 3 каждой машинной операции поставлены в соответствие команды ассемблера. Машинный алгоритм
| Команды ассемблера
|
| mov eax, x
sub eax, 20000000h ; eax = y1
|
| mov ebx, 67000000h
imul ebx
shld edx, eax, 3
mov ebx, edx ; ebx = y2
|
| sar edx, 1
add edx, 20000000h ; edx = y3
|
| mov eax, edx
imul ebx
shld edx, eax, 1 ; edx = y4
|
| add edx, 0C000000h ; edx = y5
|
| mov eax, edx
imul ebx
shld edx, eax, 1 ; edx = y6
|
| add edx, 03000000h
mov ecx, edx ; ecx = y7
|
| mov eax, 4E400000h
imul ebx
shld edx, eax, 2 ; edx = y8
|
| mov eax, edx
imul ecx
shld edx, eax, 1 ; edx = y9
|
| add edx, 00753000h ; edx = y10
|
| mov eax, edx
cwd
shld edx, eax, 31
sal eax, 31
mov ebx, 60000000h
idiv ebx
| Таблица 3. Разработка ядра программы вычисления рабочего полинома
Экспериментальная часть
Результаты работы программы
Результаты вычислений ассемблерной программы y = 5x диапазон изменения аргумента x 0,0625; 8 , шаг изменения аргумента stx = 2-3. x
| [y]16
| [y]10
| y(x)эт
| | y(x)эт -[y]10 |
| y(x)раб
| | y(x)раб -[y]10 |
| 0,0625
| 1828834E
| 24734,05
| 1,105823
| 24732,95
| 24703,82
| 30,23493
| 0,1875
| 14EEED1C
| 21431,7
| 1,35225
| 21430,35
| 21406,18
| 25,52432
| 0,3125
| 120C0DE8
| 18476,22
| 1,653591
| 18474,56
| 18454,91
| 21,30943
| 0,4375
| 0F797B56
| 15841,93
| 2,022085
| 15839,91
| 15824,37
| 17,55354
| 0,5625
| 0D310CAC
| 13504,2
| 2,472695
| 13501,73
| 13489,98
| 14,22161
| 0,6875
| 0B2CDAC4
| 11439,42
| 3,023722
| 11436,39
| 11428,14
| 11,27946
| 0,8125
| 0967401D
| 9625,002
| 3,697542
| 9621,304
| 9616,307
| 8,694806
| 0,9375
| 07DAD8D6
| 8039,388
| 4,521519
| 8034,867
| 8032,951
| 6,436959
| 1,0625
| 068282A6
| 6662,041
| 5,529115
| 6656,512
| 6657,565
| 4,476315
| 1,1875
| 05595CE8
| 5473,452
| 6,761248
| 5466,69
| 5470,667
| 2,785104
| 1,3125
| 045AC891
| 4455,134
| 8,267956
| 4446,866
| 4453,797
| 1,336778
| 1,4375
| 3826835
| 3589,628
| 10,11042
| 3579,518
| 3589,522
| 0,106313
| 1,5625
| 02CC200A
| 2860,501
| 12,36348
| 2848,137
| 2861,43
| 0,929608
| 1,6875
| 023C200A
| 2284,501
| 15,11861
| 2269,382
| 2254,135
| 30,36573
| 1,8125
| 01B6B128
| 1750,768
| 18,48771
| 1732,28
| 1753,273
| 2,50455
| 1,9375
| 01509AED
| 1342,421
| 22,6076
| 1319,813
| 1345,504
| 3,083249
| 2,0625
| 00FEBDDD
| 1014,967
| 27,64558
| 987,321
| 1018,513
| 3,546633
| 2,1875
| 00BE4641
| 757,0977
| 33,80624
| 723,2915
| 761,0086
| 3,910882
| 2,3125
| 008CA204
| 558,5315
| 41,33978
| 517,1917
| 562,722
| 4,190465
| 2,4375
| 006780A9
| 410,0103
| 50,55212
| 359,4582
| 414,4091
| 4,398754
| 2,5625
| 004CD359
| 303,3023
| 61,81739
| 241,4849
| 307,8495
| 4,547166
| 2,6875
| 003ACCD4
| 231,2004
| 75,59305
| 155,6074
| 235,8465
| 4,646086
| 2,8125
| 002FE17D
| 187,5233
| 92,43855
| 95,0847
| 192,2274
| 4,704125
| 2,9375
| 002AC754
| 167,1145
| 113,038
| 54,07652
| 171,843
| 4,728494
| 3,0625
| 002A75F5
| 165,8431
| 138,2279
| 27,6152
| 170,5681
| 4,725059
| 3,1875
| 002E269E
| 180,6034
| 169,0312
| 11,57219
| 185,3014
| 4,69798
| 3,3125
| 355428
| 209,3149
| 206,6989
| 2,616054
| 213,9651
| 4,650136
| 3,4375
| 003FBB0C
| 250,9226
| 252,7606
| 1,838
| 255,5054
| 4,582817
| 3,5625
| 004D5961
| 305,3965
| 309,0869
| 3,690384
| 309,8924
| 4,495852
| 3,6875
| 005E6EDC
| 373,7322
| 377,9653
| 4,233088
| 378,1198
| 4,387605
| 3,8125
| 00737CCE
| 457,9501
| 462,1928
| 4,24269
| 462,2052
| 4,255096
| 3,9375
| 008D462C
| 561,0964
| 565,1899
| 4,093464
| 565,19
| 4,093517
| 4,0625
| 00ACCF84
| 687,2424
| 691,1394
| 3,896954
| 691,1393
| 3,896899
| 4,1875
| 00D35F02
| 841,4845
| 845,156
| 3,67153
| 845,1423
| 3,657812
| 4,3125
| 01027C75
| 1029,945
| 1033,494
| 3,549797
| 1033,312
| 3,367052
| 4,4375
| 013BF145
| 1259,77
| 1263,803
| 4,033199
| 1262,784
| 3,01426
| 4,5625
| 0181C87D
| 1539,133
| 1545,435
| 6,302019
| 1541,72
| 2,587305
| 4,6875
| 01D64EC1
| 1877,231
| 1889,826
| 12,5958
| 1879,303
| 2,072899
| 4,8125
| 023C1258
| 2284,287
| 2310,964
| 26,6772
| 2285,743
| 1,455983
| 4,9375
| 02B5E324
| 2771,549
| 2825,949
| 54,40043
| 2772,269
| 0,720219
| 5,0625
| 0346D2A6
| 3351,291
| 3455,697
| 104,4055
| 3351,139
| 0,15226
| 5,1875
| 03F23400
| 4036,813
| 4225,78
| 188,9676
| 4035,632
| 1,180963
| 5,3125
| 04BB9BEE
| 4842,436
| 5167,472
| 325,0358
| 4840,05
| 2,386624
| 5,4375
| 05A6E0CC
| 5783,512
| 6319,015
| 535,5027
| 5779,721
| 3,79156
| 5,5625
| 06B81A94
| 6876,415
| 7727,173
| 850,758
| 6870,996
| 5,419554
| 5,6875
| 07F3A2E0
| 8138,545
| 9449,132
| 1310,587
| 8131,249
| 7,295974
| 5,8125
| 095E14E6
| 9588,327
| 11554,82
| 1966,493
| 9578,879
| 9,447531
| 5,9375
| 0AFC4D7A
| 11245,21
| 14129,75
| 2884,537
| 11233,31
| 11,9024
| 6,0625
| 0CD36B11
| 13129,67
| 17278,48
| 4148,812
| 13114,98
| 14,6904
| 6,1875
| 0EE8CDBA
| 15263,21
| 21128,9
| 5865,686
| 15245,37
| 17,84258
| 6,3125
| 11421728
| 17668,36
| 25837,36
| 8168,999
| 17646,97
| 21,39181
| 6,4375
| 13E52AA6
| 20368,67
| 31595,08
| 11226,41
| 20343,29
| 25,37206
| 6,5625
| 16D82D20
| 23388,71
| 38635,87
| 15247,16
| 23358,89
| 29,81894
| 6,6875
| 1A218522
| 26754,08
| 47245,66
| 20491,58
| 26719,31
| 34,76967
| 6,8125
| 1DC7DAD5
| 30491,42
| 57774,1
| 27282,68
| 30451,16
| 40,26285
| 6,9375
| 21D217FD
| 34628,37
| 70648,74
| 36020,36
| 34582,04
| 46,33836
| 7,0625
| 26476801
| 39193,63
| 86392,42
| 47198,8
| 39140,59
| 53,03787
| 7,1875
| 2B2F37E2
| 44216,87
| 105644,5
| 61427,63
| 44156,47
| 60,40425
| 7,3125
| 30913646
| 49728,85
| 129186,8
| 79457,96
| 49660,37
| 68,48227
| 7,4375
| 36755368
| 55761,3
| 157975,4
| 102214,1
| 55683,99
| 77,31762
| 7,5625
| 3CE3C128
| 62347,02
| 193179,3
| 130832,3
| 62260,06
| 86,95787
| 7,6875
| 43E4F301
| 69519,8
| 236228,3
| 166708,5
| 69422,35
| 97,45187
| 7,8125
| 4B819E0E
| 77314,47
| 288870,5
| 211556
| 77205,62
| 108,8501
| 7,9375
| 53C2B908
| 85766,89
| 353243,7
| 267476,8
| 85645,69
| 121,2044
| 8,0625
| 5CA9B908
| 94882,89
| 431962,1
| 337079,2
| 94779,37
| 103,5175
| |