Session Start: Thu Nov 01 19:57:34 2001 [19:57] *** Now talking in #uppbt [19:57] *** Topic is 'Forritunarverkefni 3' [19:57] *** Set by eta^!~jdei@blokk02.heimsnet.is on Thu Nov 01 14:03:01 [19:57] Hó, hó, hér er ég! [19:57] *** Einal has joined #uppbt [19:59] hvort er betra að gera [19:59] push bp, mov bp, sp [20:00] til að ná í vektorinn [20:00] eða mov esi, ax [20:00] ? [20:00] mov esi, a [20:00] Það er nóg að gera: mov esi, a [20:01] hvaða pakki er þetta push bp..... [20:01] Þá færðu bendi í esi á a[0] [20:03] er í lagi að vinna út úr breytunum i, j, v áður en byrjað er á inline assembly [20:03] Það kemur sjálfkrafa með hausi C++ fallsins. Prófaðu að þýða fallið þitt (bara með [20:03] haus og breytuskilgreiningum, og svo __asm{ blokk og fá út "Listing File" með [20:04] smalamálskódanum. Þá séru staflaramman settan upp og tekinn niður í lok fallsins. [20:04] Ein spurning, af hverju er margfalt hægara að nota exch fall með parition(c++) m.v. 3 gildisveitingar og tmpbreytu [20:05] *** vazzago has joined #uppbt [20:06] Sæll Hjálmtýr, ein spurning. Hvað er að gerast með dæmatímana okkar, engin í dag eða í síðustu viku? [20:07] Snoddans: Ég vissi ekki að það væri margfalt hægvirkara, en það er eitthvað hægvirkara vegna þess að það þarf [20:07] að setja upp og taka niður staflarammann þegar kallað er á fall, miðað við að skrifa víxlunarkódann bara beint inn í partition [20:08] Hvað er eðlilegur tími fyrir quicksort_asm a 100.000 stök [20:08] vazzago: Í síðustu viku var spyrnan, þannig að þess vegna féll niður dæmatíminn. Í dag var Páll með flensu og ég komst ekki sjálfur. [20:09] Snoddans: Það fer dálítið eftir tölvum. Á minni vél tekur það vel innan við sekúndu, bæði ASM og C++ útgáfan fyrir 100.000 stök. [20:09] Ég skil. takk [20:10] Ég verð að fara í 1.000.000 stök til að fá almennilegan mum. [20:10] *** Erlendur has joined #uppbt [20:10] hvort hækkar maður um 2 eða 4 í [bp+?] [20:10] Athugið að þegar þið farið að nota meira en uþb. 250þús. stök í röðuninni þá þurfið þið að skilgreina vektorinn með [20:11] int *a = new int[1000000]; [20:11] Er ekki fínu lagi að skrifa sitt eigið exch og hafa það með í partition ? [20:11] í staðinn fyrir [20:11] int a[1000000]; [20:11] Amnes1ac: Jú, en ég myndi ekki skrifa það sem fall, heldur setja skipanirnar beint inn. [20:12] Hjalmtyr: meina það [20:15] Ég fæ eftirfarandi villu: The value of ESP was not properly saved across a function call. Hvað er ég að gera vitlaust? [20:16] Erlendur: Mér finnst líklegast að þú breytir ESP (t.d. með push/pop) án þess að laga það aftur þegar fallið hættir [20:20] *** Gusti has joined #uppbt [20:20] Halló [20:21] Neibbs ... það er pop á móti öllum push [20:21] hvernig er hægt að skoða vektorinn svipað og í turbo-variables? [20:22] Mig langar að vita hvort er hægt að nota inni í assembly-kódanum t.d. mov eax, a[10] til að fá stak nr. 10 úr vektornum í eax [20:22] Einal: Í Debug-ham er vektorinn eins og hver önnur breyta og kemur í breytuglugganum neðst [20:23] meinti ef maður vill raða þessu skipulega eins og sýnislausn á forrverk2 [20:23] [ebp] [20:24] *** cryar has joined #uppbt [20:24] Gusti: Mér finnst það frekar ólíklegt. Það er betra að fá fyrst bendi á a[0] með t.d. " mov esi, a" og leggja síðan við esi til að fá hin stökin. Kíktu á þýddu útgáfuna af partition. [20:25] *** eta^ sets mode: +o Hjalmtyr [20:25] Einal: Þú mátt skilgreina breyturnar í C++ og mátt síðan nota þær beint í smalamálshlutanum. [20:25] Í "while (v < a[--j]) if (j == l) break;" er þá verið að break-a út úr while eða út úr ytri for lykkjunni? [20:26] Hjalmtyr: Ég gerði það, mov esi, a og reyndi síðan að gera eitthvað eins og t.d. mov eax, [esi] sem ætti að vera fyrsta stakið (hélt ég) en það virkaði ekki [20:26] Amnes1ac: Út úr þessari while-lykkju. [20:27] Gusti: Jú, það er fyrsta stakið, þ.e. a[0], en partition vinnur í hvert sinn á stökunum frá vísi l (left) til r (right), ekki 0 (núll). [20:28] Erlendur: Það er þá eitthvað rangt í sambandi við EBP. Breytirðu því gisti nokkuð? [20:30] mov eax, l [20:30] mov [ebp], eax [20:30] sub eax, 4 [20:30] mov [ebp+4], eax [20:30] mov eax, r [20:30] mov [ebp+8], eax [20:30] mov esi, a [20:30] add eax, 4 [20:30] mov edx, [esi+eax] [20:30] er þetta ekki hægt [20:31] Einal: Af hverju ertu að setja eax í [epb]. Þar er gamla gildi ebp! [20:32] Hjalmtyr: Hvert stak er 4 bæti, ætti ég þá ekki að fá t.d. stak 2 (a[1]) með því að gera "mov eax, [esi+4]"? Ég skildi ekki alveg þetta með partition [20:32] má nota esp í stað ebp [20:34] *** cryar has quit IRC (Ping timeout) [20:34] Gusti: partition er að vinna með vektorinn a[l...r]. Þú veist ekki hvaða gildi l (eða r) hefur, en það er einhver heiltala. Þú þarft að leggja 4*gildi á l við bendinn á a[0] til að fá bendi á a[l] [20:36] Hjálmtýr: Takk fyrir og bless :) [20:36] *** Gusti has left #uppbt (Gusti) [20:38] hjálmtýr. þarf maður ekki að gera lea esi, a aðeins mov esi, a ? [20:39] Hvernig er það, þarf ekki að vera einhver kóði í forritinu sem prentar út vektorinn í lokin eða þarf grey Páll bara að lesa gegnum asm kóðann til að athuga hvort allt sé rétt? [20:40] eta^: Ef þú gerir lea esi, a, þá færðu bendi á bendinn á a[0]. Þú vilt aðeins bendinn á a[0] og hann færðu með mov esi, a [20:41] *** Snoddans has quit IRC [20:41] Amnes1ac: Ég held að það sé óþarfi að prenta út vektorinn. Þið megið þó gera það (í C++!). Smalamálshlutinn ætti ekki að vera meira en 20-30 línur, og Páli er enginn vorkunn að lesa það! [20:45] ok skil [20:50] Neibbs ... kem ekkert nálægt EBP [20:52] Erlendur: Þá á ég bágt með að skilja þetta. Öll push og pop stemma og þú breytir hvorki EBP né ESP á neinn annan hátt.? [20:53] Ég lenti í vandræðum með ESP og fékk alltaf einhverja minnisvillu.. svo ég prófaði að hætta að nota ebp og esi .. þá virkaði allt fínt.. [20:54] hafa einhverjir/jar lent í vandræðum að keira forritið á AMD örgjörva? [20:55] eta^: Hef ekki aðgang að neinum slíkum [20:55] ég fékk... Loaded 'C:\WINNT\System32\ntdll.dll', no matching symbolic information found. ofl....svipað [20:55] virkaði fint upp í skóla [21:05] Ég er búinn að finna hvað var að ... ég gleymdi að taka fram að það ætti að poppa DWORD PTR og þar af leiðandi var mismunur á pop/push [21:05] Erlendur: OK. [21:06] Jæja, eigum við ekki að fara að segja þetta gott? [21:06] leiter [21:06] *** Einal has quit IRC [21:07] Gangi ykkur vel með verkefnið! [21:07] *** Disconnected Session Close: Thu Nov 01 21:07:32 2001