Klausimai pažymėti „asamblėja“

Programavimo klausimai programavimo kalba (asm). PATVIRTINTI, KAD TAG TAG kartu su procesoriumi ir / arba instrukcijų rinkiniu, kurį naudojate, taip pat montuotojui. ĮSPĖJIMAS. .NET kolekcionieriams vietoj to naudokite [.net-assembly] žymą. „Java ASM“ vietoj to naudokite [java-bytecode-asm] žymą.
12
atsakymai

Kodėl GCC nesukuria * a * a * a * a * a į (a * a * a) * (a * a * a)?

Mokslinėje programoje atlieku tam tikrą skaitinį optimizavimą. Pastebėjau, kad Persijos įlankos bendradarbiavimo taryba optimizuoja skambutį (a, 2), sukompiliuoti ją į * a, bet skambutis įjungti (a, 6) nėra optimizuotas ir iš tikrųjų vadins bibliotekos funkciją pow, kuri žymiai sulėtina gamybą ...
yra nustatytas birželio 21 d. 11 val
14
atsakymai

Yra <greičiau nei <=?

Aš perskaičiau knygą, kurioje autorius sako, kad jei (a <901) yra greitesnis nei jei (a <= 900). Nemėgsta šiame paprastame pavyzdyje, tačiau yra nedideli pokyčiai sudėtingo kilpos kodo veikime. Manau, kad tai turėtų būti padaryta kuriant kažką ...
nustatyti 27 rug. '12, 5:10
10
atsakymai

Pakeitus 32 bitų kontūrą su 64 bitų reikšmėmis, atsiranda beprasmiški skirtumai

Aš ieškojau sparčiausių būdų išskleisti didelius duomenų masyvus. Man teko susidurti su labai keistu efektu: linijos kintamojo keitimas nuo nepasirašyto iki uint64_t lėmė 50% našumo sumažėjimą mano kompiuteryje. Benchmark #include ...
nustatyti 01 rug. '14, 13:33
11
atsakymai

Kodėl šis „C ++“ kodas yra greitesnis nei mano rašytinis „Collatz“ hipotezės testavimas?

Šiuos du sprendimus parašiau „Project Euler Q14“ statyboje ir „C ++“. Jie atitinka tą pačią brutalia jėgos metodą, kad būtų galima išbandyti Collatz hipotezę. Surinkimo tirpalas buvo surinktas naudojant nasm -felf64 p14.asm gcc p14.o -o p14 C ++ ...
lapkričio 1 d. '16, 9:12
14
atsakymai

Kas yra LEA nurodymo tikslas?

Man tai tiesiog atrodo kaip funky MOV. Koks yra jo tikslas ir kada turėčiau jį naudoti?
lapkričio 1 d. '09 23:57
4
atsakymai

Kaip pasiekti teorinį maksimalų 4 FLOP per ciklą?

Kaip šiuolaikiniame „Intel x86-64“ procesoriuje bus pasiekta keturių slankiojo kablelio operacijų (dvigubo tikslumo) teorinė didžiausia charakteristika? Kiek aš suprantu, daugeliui modernių „Intel“ procesorių reikalingi trys qi ...
rinkinys 05 Dec '11 20:54 val
38
atsakymai

Kada statomas greičiau nei C?

Viena iš paminėtų priežasčių žinoti surinkėją yra ta, kad kartais galima rašyti kodą, kuris bus efektyvesnis nei šio kodo rašymas aukštesnio lygio kalba, ypač C. Tačiau aš taip pat girdėjau ...
nustatytas vasario 23 d '09 16:03
6
atsakymai

Kodėl GCC generuoja kodą 15-20% greičiau, jei optimizuosiu dydį vietoj greičio?

2009 m. Pirmą kartą pastebėjau, kad GCC (bent jau mano projektuose ir mano mašinose) paprastai generuoja pastebimai greitesnį kodą, jei optimizuosiu dydį (-O) vietoj greičio (-O2 arba -O3), ir Tai buvo įdomu, nes ...
nustatyti spalio 19 d. '13, 23:36
14
atsakymai

Kaip gauti surinkėjo išvestį iš C / C + + šaltinio gcc?

Kaip tai padaryti? Jei noriu išanalizuoti, kaip kažkas rengiama, kaip galiu gauti išleistą surinkimo kodą?
rugsėjo 26 d '08 3:10
4
atsakymai

Kodėl „Java“ jungiklis įjungia nuolatinius ints, kurie veikia greičiau su papildomais atvejais?

Dirbu su tam tikru „Java“ kodu, kuriam reikalinga didelė optimizacija, nes ji veiks karštose funkcijose, kurios vadinamos daugelyje mano pagrindinės programos logikos. Dalis šio kodo apima kintamųjų dauginimąsi ...
nustatė kovo 25 d. 13 val
9
atsakymai

GCC naudojimas, kad būtų sukurtas skaitomas rinkinys?

Man buvo įdomu, kaip naudoti GCC savo C šaltinio faile, kad iš naujo nustatytumėte mašininio kodo mnemoninę versiją, kad galėčiau matyti, kad mano kodas buvo surinktas. Tai galite padaryti su „Java“, bet aš negalėjau rasti būdų su GCC. Aš ...
rugpjūčio 17 d. '09 22:22
32
atsakymai

Kodėl programos dažniausiai rengiamos asamblėjoje?

Atrodo, kad pagrindinė nuomonė yra ta, kad programavimo rinkiniai užima daugiau laiko ir yra sunkiau užprogramuoti nei aukštesnio lygio kalba, pvz., C. Todėl atrodo, kad rekomenduojama arba manoma, kad geriau rašyti daugiau kalbos ...
nustatytas balandžio 21 d '10, 18:39
4
atsakymai

Kas yra retpolinas ir kaip tai veikia?

Norint sušvelninti branduolio ar kryžminio proceso atmintį („Specter“), „Linux 1“ branduolys bus sukompiliuotas su naująja galimybe, - „direct-branch = thunk-extern“, įvestas gcc, kad atliktų netiesioginius skambučius naudojant vadinamąjį retpoliną. Atrodo ...
nustatytas sausio 04 d '18, 8:52
10
atsakymai

Kaip atrodo daugiašalė surinkimo kalba?

Kažkada, pavyzdžiui, parašyti x86 montuotoją, turėsite instrukcijas, rodančias: "Įkelkite EDX registrą, kurio vertė yra 5", "Padidinti EDX" ir tt Su šiuolaikiniais procesoriais, turinčiais 4 branduolius (arba dar daugiau), mašinų kodo lygiu ...
birželio 11 d., 16:16
4
atsakymai

Kodėl nereikalingų instrukcijų įvedimas MOV pagreitina siaurą kilpą komplekte x86_64?

Fonas: optimizuojant kai kuriuos Pascal kodus su įmontuota surinkimo kalba, pastebėjau nereikalingą MOV nurodymą ir jį ištryniau. Nenuostabu, kad pašalinus nereikalingą komandą, mano programa sulėtėjo. Radau, kad prod ...
liepos 27 d. 13:25