WEBVTT Kind: captions; Language: fi 1 00:00:02.680 --> 00:00:04.520 Morjesta. 2 00:00:04.520 --> 00:00:08.900 Niemisen paavo ja mitkä se jonnekin tuolla istuu nauhoitella 3 00:00:08.900 --> 00:00:13.410 aihepiirivideota käyttöjärjestelmäkurssilla. 4 00:00:13.410 --> 00:00:17.930 Ja. Jatketaan ainakin vielä yksi kerran. 5 00:00:17.930 --> 00:00:21.710 Sarjasta, joka on aiemmin käynnistynyt ja siitä osat yksi 6 00:00:21.710 --> 00:00:27.070 ja 2 on saatavilla ja nyt tulee kolmasosa. 7 00:00:27.070 --> 00:00:30.890 Hei maailma ensimmäinen koeputki esimerkki voisi olla 8 00:00:30.890 --> 00:00:37.960 esimerkiksi ckielisessä ohjelmoinnista. Meillä on. 9 00:00:37.960 --> 00:00:46.330 Tehty kielisenä se ja ja tota otetaan se. Auki tähän. 10 00:00:46.330 --> 00:00:49.840 Hei maailma se tässä ollaan oltu. 11 00:00:49.840 --> 00:00:51.800 Ja sitä ollaan kehitelty. 12 00:00:51.800 --> 00:00:55.460 Sitä ollaan käännelty ja sitä ollaan suoritettu ja sitä 13 00:00:55.460 --> 00:01:01.880 ollaan jo tutkittu vähän republikaaneilla. Nyt mennään. 14 00:01:01.880 --> 00:01:08.780 Vielä vähän syvemmälle ja ja tota jatkuvasti c kieltä jumpataan ja nyt sitten tota debuggeria 15 00:01:08.780 --> 00:01:16.460 ja konekieltä katsellaan tarkemmin ja sitten heti kärkeen jo laitetaan tuonne. 16 00:01:16.460 --> 00:01:21.390 Pikkuisen noita kääntäjän vipuja. 17 00:01:21.390 --> 00:01:27.060 Tukemaan tätä touhua koska tota nyt mitä aikaisemmin ollaan tehty. 18 00:01:27.060 --> 00:01:28.860 Meillä ensinnäkin on. 19 00:01:28.860 --> 00:01:30.940 Ohjelman nimi on ollut oletuksena artiste out. 20 00:01:30.940 --> 00:01:32.740 Mikä? 21 00:01:32.740 --> 00:01:37.220 Mikä tulee jos ei muuta pyydetä ja sitten ollaanbussilla. 22 00:01:37.220 --> 00:01:41.320 Esimerkiksi katsottu pysähtymistä. 23 00:01:41.320 --> 00:01:45.650 Pääohjelman alkuun eli selkokielisen maine ohjelman alkuun. 24 00:01:45.650 --> 00:01:49.610 Ja ja tota niin vahingossa komensi startti joka on itse asiassa automaattisesti 25 00:01:49.610 --> 00:01:55.870 tekee saman eli pysähtyy mining alkuun ja sitten ollaan katsottu. 26 00:01:55.870 --> 00:01:58.070 Katsottu. 27 00:01:58.070 --> 00:02:02.990 Alustavasti tätä konekieltä takaisin käännöksellä. 28 00:02:02.990 --> 00:02:05.470 Eli missä assemblyillä. 29 00:02:05.470 --> 00:02:11.840 Konekieltä, joka on on syntynyt siitä kielestä, mutta nyt tuota. 30 00:02:11.840 --> 00:02:16.710 Tässä on nyt pyytänyt näyttämään sekä tavujon. 31 00:02:16.710 --> 00:02:20.410 Mistä jo käytiinkin läpi, että sitä ei tarvitse huolehtia enää sen jälkeen 32 00:02:20.410 --> 00:02:25.720 kun ymmärretään, että että jokainen konekieli käsky on. 33 00:02:25.720 --> 00:02:30.300 Pieni pieni jono tavu ja tietokoneen muistissa. 34 00:02:30.300 --> 00:02:33.600 Joita joita se prosessori suorittaa peräjälkeen. 35 00:02:33.600 --> 00:02:39.340 Sen nimi on suorituskyky elikkä elikkä tota professori nautaa aina seuraavan käskyn ja seuraavan 36 00:02:39.340 --> 00:02:45.430 käskyn jos ei se käsky aiheuta hyppyä johonkin eri paikkaan sitten tuolla. 37 00:02:45.430 --> 00:02:48.780 Ohjelmassa, mutta sitten toi toinen. 38 00:02:48.780 --> 00:02:53.240 Vipu jota jota jos ei ei muista niin niin pystyy. 39 00:02:53.240 --> 00:02:55.200 Pystyy heistä pikkuisen katsomaan. 40 00:02:55.200 --> 00:02:59.390 Mä olisin tässä nyt kovasti halunnut nähdä, että mitkä lähdekoodin rivit. 41 00:02:59.390 --> 00:03:01.970 On johtanut mihinkin. 42 00:03:01.970 --> 00:03:06.590 Mihinkin tota riviin tai tota koneelliseen pätkään tuossa 43 00:03:06.590 --> 00:03:09.850 ja sitähän pyysin, mutta niitä ei tässä näy. 44 00:03:09.850 --> 00:03:16.690 Syy on se että mitenkään mystisesti toi bunkkeri ei voi tietää lähdekoodista mitään. 45 00:03:16.690 --> 00:03:22.310 Tää ainoa mitä voi saada irti niin on tää konekieli. 46 00:03:22.310 --> 00:03:27.510 Tavuina ja sitten ihmisen paremmin ymmärtämään symbolisena konekielenä, josta 47 00:03:27.510 --> 00:03:33.430 ollaan keskitytty tähän mennessä yksi esimerkin oma se. 48 00:03:33.430 --> 00:03:37.610 Mut ei se lähde koodista tiedä mitään. 49 00:03:37.610 --> 00:03:42.370 Ellei mukana ole kyseinen tieto eli. 50 00:03:42.370 --> 00:03:49.040 Mennäänpäs nyt vielä pois täältä GDV, stä. 51 00:03:49.040 --> 00:03:54.220 Käännetään uudelleen tuo ohjelma. Ja ja. 52 00:03:54.220 --> 00:03:56.950 Otetaan siihen tuo. 53 00:03:56.950 --> 00:04:03.270 Käännös komento ja pyydetään mä nyt laitan tänne alkuun näitä vipuja– pikku 54 00:04:03.270 --> 00:04:10.250 niin on semmoinen joka niinku debug laittaa dubbaustiedot eli virheenkorjaustiedot 55 00:04:10.250 --> 00:04:16.400 mukaan mukaan lukien se silloin laittaa sinne käännökseen voi varmistaa että 56 00:04:16.400 --> 00:04:19.080 se käännös tapahtui niin niin. 57 00:04:19.080 --> 00:04:22.720 Nyt se laittaa mukaan viitetiedot siitä, että mikä 58 00:04:22.720 --> 00:04:27.440 on lähdekooditiedostot ja mikä rivi on. 59 00:04:27.440 --> 00:04:30.650 Aiheuttanut minkäkin noista. 60 00:04:30.650 --> 00:04:35.450 Konekielisiä pätkistä ja nyt jos me käynnistetään täällä GDP, llä tilanteen 61 00:04:35.450 --> 00:04:38.470 pitäisi olla erilainen ja nyt meillä pitäisi olla mukana mahdollista saada 62 00:04:38.470 --> 00:04:43.550 tieto siitä lähdekoodin rivistä ja ja nyt tota niinku sanottu start oli se 63 00:04:43.550 --> 00:04:48.290 joka pysähtyy automaattisesti pääohjelman alku noin. 64 00:04:48.290 --> 00:04:56.380 Ja nyt disable ja pyydetään siltä nuo kaikki Lisätiedot mitä voi niin nyt se näyttää. 65 00:04:56.380 --> 00:05:02.320 Nyt se näyttää tää debugkeri, koska siellä suoritettavassa ohjelmatiedot jossa on mukana 66 00:05:02.320 --> 00:05:09.120 ja dubbaustiedot elikkä mistä lähdekoodi tiedostottaja eli vista oli kyse elikkä nyt siellä 67 00:05:09.120 --> 00:05:17.990 on rivi 2 on ollut ollut tämmöinen mistä lähtee se pääohjelma? 68 00:05:17.990 --> 00:05:21.050 Ja nyt me päästään katsomaan, että esimerkiksi jo siitä rivistä 69 00:05:21.050 --> 00:05:24.970 on tullut tänne näitä konekielisiä käskyjä. 70 00:05:24.970 --> 00:05:32.070 Ja tota erittäin erittäin tota. 71 00:05:32.070 --> 00:05:37.490 Tarkkaavaisia kysymyksiä on on hyvä niinku hyvä niinku esittää että että 72 00:05:37.490 --> 00:05:42.220 mitähän mitähän nääkin rivit esimerkiksi esimerkiksi. 73 00:05:42.220 --> 00:05:44.800 Nää konekieliset käskyt tekee mitkä tuleekin ihan vaan 74 00:05:44.800 --> 00:05:48.740 siitä, että että tuossa ei vielä mitään. 75 00:05:48.740 --> 00:05:53.380 Mitään tapahtumia ohjelmoitu vaan ihan vaan se että nyt tää on pääohjelma alku. 76 00:05:53.380 --> 00:05:55.420 Mä en nimisen funktion alku. 77 00:05:55.420 --> 00:05:59.260 No siitäkin on tullut koodia. No nyt. 78 00:05:59.260 --> 00:06:04.280 Tossa näkyy että rivi 3 siinä olisi tämmöinen sitten niinku silmukka rakenne. 79 00:06:04.280 --> 00:06:08.600 Ilmeisesti ohjelmoitu joka käy tuota niin muuttujalla ei 80 00:06:08.600 --> 00:06:14.850 nolla kahteensataanviiteenkymmeneenkuuteen. Niin luvut läpi. 81 00:06:14.850 --> 00:06:17.520 Ja siitä on tullut sitten nyt tuosta forum. 82 00:06:17.520 --> 00:06:21.390 Rivistä rivistä 3 on tullut tullut sitten. 83 00:06:21.390 --> 00:06:26.300 Tämmöisiä nyt tuosta huomataankin miten tää nyt toimii elikkä nyt kun mä pyysin start komennolla 84 00:06:26.300 --> 00:06:31.750 bunkkeria pysähtymään pääohjelman alkuun, niin sehän osasi pysähtyäkin itse asiassa siihen 85 00:06:31.750 --> 00:06:34.910 missä on ensimmäinen rivi joka tekee varsinaisesti jotain. 86 00:06:34.910 --> 00:06:38.130 Silti tietokone tekee asioita siinä käännetyssä. 87 00:06:38.130 --> 00:06:41.450 Ohjelmassa on mukana jo asioita jokaisen aliohjelman alussa 88 00:06:41.450 --> 00:06:45.070 tulee samannäköiset asiat pieniin eroihin. 89 00:06:45.070 --> 00:06:50.350 Ja siihen mennään myöhemmin myöhemmissä aihepiirin videoissa ja harjoituksissa. 90 00:06:50.350 --> 00:06:55.830 Tutkitaan nyt tätä näkymää ja juhlitaan sitä, että ollaan osattu laittaa sinne mukaan 91 00:06:55.830 --> 00:07:01.630 nää dubbaustiedot me päästään nyt näkemään, että minkälaiseksi konekielen tuo kyseinen 92 00:07:01.630 --> 00:07:07.890 kääntäjä tällä kyseisellä prosessorin arkkitehtuurilla tälle kyseiselle käyttöjärjestelmälle 93 00:07:07.890 --> 00:07:10.230 on on kääntänyt kunkin riviin. 94 00:07:10.230 --> 00:07:15.500 Tuossa on sitten tuo tuo printf rivi tuo nelosrivi. 95 00:07:15.500 --> 00:07:19.670 No siitä on muodostunut. Kokonaista 5. 96 00:07:19.670 --> 00:07:25.860 Konekielistä käskyä no niin ja tää on nyt se haettava taito. 97 00:07:25.860 --> 00:07:28.130 Etsitään kokeilemaan itse. 98 00:07:28.130 --> 00:07:32.890 Yksinkertainen ohjelma ja katsomaan pystyykö itse toistamaan tämän että että näkeekö sieltä, 99 00:07:32.890 --> 00:07:37.800 pystyykö ihmettelemään tätä niinku ensinnäkin, että että minkälainen käännöstä että nyt 100 00:07:37.800 --> 00:07:43.210 tuli, kun kun pienen ohjelman kirjoitti vaikka nyt hei maailma. 101 00:07:43.210 --> 00:07:46.340 Ja tämän näköjään sivuuttaa. 102 00:07:46.340 --> 00:07:48.330 Tätä on toki listauksessa. 103 00:07:48.330 --> 00:07:50.860 Nyt tulossa enemmän näitä konekielisiä rivejä tässä. 104 00:07:50.860 --> 00:07:54.860 Onhan siinä ohjelmassakin vielä tuon nelosrivin jälkeen. 105 00:07:54.860 --> 00:08:03.650 Asioita tuommoiset asiat siellä on. Eli eli tuota. 106 00:08:03.650 --> 00:08:11.130 Myös. Jotakin koneellista on tullut tuosta. 107 00:08:11.130 --> 00:08:15.410 Paluuarvon asettamisesta pääohjelman kielessä pitää 108 00:08:15.410 --> 00:08:21.010 asettaa nolla jos kaikki meni hyvin. 109 00:08:21.010 --> 00:08:23.580 Tää jotain muuta kuin nolla. Jos jos halutaan tiedottaa käynnistäjälle, että nyt 110 00:08:23.580 --> 00:08:25.380 tämä ohjelma päättyi virhetilanteeseen. 111 00:08:25.380 --> 00:08:34.010 Tää jo kertausta aiemmasta sen lisäksi tossa on ihan vaan toi lohkon päättävä. 112 00:08:34.010 --> 00:08:38.130 Kihara sulku eli oikealta nimeltään suomen kielessä. 113 00:08:38.130 --> 00:08:42.120 Aalto sulku. Aalto sulku kiinni. 114 00:08:42.120 --> 00:08:45.200 Lainesuu aalto sulku virallinen nimi. 115 00:08:45.200 --> 00:08:47.310 Siitäkin on tullut jotain koodia. 116 00:08:47.310 --> 00:08:53.510 Siitä on tullut 2 konekielistä käskyjä jotka ilmeisesti on tabut 9 ja 3. 117 00:08:53.510 --> 00:08:56.780 Mistä kuka meillä määrää, että se on nimenomaan? 118 00:08:56.780 --> 00:09:02.780 C 9 jonkun tietyn konekielisen käskyn tämä tabu. 119 00:09:02.780 --> 00:09:09.240 Joo. Speksi joo speksi ja ja tota. 120 00:09:09.240 --> 00:09:11.410 Nyt on. 121 00:09:11.410 --> 00:09:17.710 Päättänyt näyttää tässä tässä kurssilla niin. 122 00:09:17.710 --> 00:09:24.190 AMD. Advanced micro devices. 123 00:09:24.190 --> 00:09:28.600 Yrityksen itse asiassa public house elikkä ei haittaa tätä dokkaria 124 00:09:28.600 --> 00:09:31.200 näytellä siellä ja ihan lukee julkiseen käyttöön. 125 00:09:31.200 --> 00:09:34.930 Hyvä jos luentomateriaaliksi niin niin tota. 126 00:09:34.930 --> 00:09:39.770 Kyseisetvist micro devices firman kirjoittamaan speksiä. 127 00:09:39.770 --> 00:09:45.560 Nythän myös ainakin intel niminen yritys tekee prosessoreita 128 00:09:45.560 --> 00:09:47.550 jotka toimii ihan samalla lailla. 129 00:09:47.550 --> 00:09:51.710 Heillä on sitten oma manuaali joka kuvaa hyvin pienin nyanssiero 130 00:09:51.710 --> 00:09:55.640 ennen kuin se että miten heidän laitteet toimii. 131 00:09:55.640 --> 00:09:57.950 Konekieliset ohjelmat. 132 00:09:57.950 --> 00:10:05.270 Toimii molemmissa samalla lailla, koska AMD päässyt ekana määrittämään tämmöisessä speksin 133 00:10:05.270 --> 00:10:10.260 ja nyt sitten intelin voi tehdä laitteita jotka toimii saman rajapinnan mukaan että 134 00:10:10.260 --> 00:10:13.200 tää reaalimaailman dokumentaatio voidaan käydä katsomassa. 135 00:10:13.200 --> 00:10:18.630 Täällä on general purpose instruction referenssi aakkosllisessa järjestyksessä 136 00:10:18.630 --> 00:10:21.750 ja sieltä voidaan höllätä vielä kertauksen. 137 00:10:21.750 --> 00:10:27.280 Varmisti että olisiko tuommoinen leave niminen täällä löytyvissä ja. 138 00:10:27.280 --> 00:10:32.040 Onhan siellä. Lead. 139 00:10:32.040 --> 00:10:35.850 On sen sen nimi isoilla kirjaimilla tässä. 140 00:10:35.850 --> 00:10:39.020 Dokkarin syntaxsissä ja sitten tuossa. 141 00:10:39.020 --> 00:10:41.300 Ensimmäisenä aina tärkeimmät yleiskuva. 142 00:10:41.300 --> 00:10:46.550 Mitä tää tekee tää poistaa. 143 00:10:46.550 --> 00:10:52.240 Proseduuri eli eli aliohjelman eli funktion. 144 00:10:52.240 --> 00:10:58.930 Eli toiminnallisuuden, joka on paketoitu tällaiseksi niin pinokehykseen. 145 00:10:58.930 --> 00:11:05.500 Se on myöhempien aihepiirivideoiden aihetta ymmärtää syvällisemmin sitten se, että mikä on 146 00:11:05.500 --> 00:11:12.650 pinokehys eli starscream joka tapauksessa mee niin sen tarkoitus on poistaa. 147 00:11:12.650 --> 00:11:18.230 Proseduuri. Tämänhetkinen pinokehys. 148 00:11:18.230 --> 00:11:22.110 Tarkempi kuvaus yleensä sitten seuraavana astetta tarkemmin suomennettuna 149 00:11:22.110 --> 00:11:28.210 sanottuna tuo vapauttaa pinokehyksen, jonka edeltävä enter konekieli käsky 150 00:11:28.210 --> 00:11:33.270 on luonut ja tota vapauttaakseen kehyksen. 151 00:11:33.270 --> 00:11:40.960 Se kopioi pinon osoittimen RBP nimisestä rekisteristä. 152 00:11:40.960 --> 00:11:44.980 Pino osoitti rekisteri RSP. 153 00:11:44.980 --> 00:11:48.210 Eri aihepiirin videoiden sisältöä sitten. 154 00:11:48.210 --> 00:11:52.630 Ja omatoimisen opiskelun asiaa löytyy myös nyt spekseistä 155 00:11:52.630 --> 00:11:55.330 tietenkin mitä nää rekisterit sitten on? 156 00:11:55.330 --> 00:11:59.330 On rekisterit on nopeita muisteja joilla on tietty nimi tietty erittäin 157 00:11:59.330 --> 00:12:05.150 nopeasti käytettävissä oleva sisältö, mutta toi kertoo miten tää käytännössä 158 00:12:05.150 --> 00:12:12.590 tekee ja sitten poksauttaa eli poppaa vanhan. 159 00:12:12.590 --> 00:12:18.040 Pino osoittimen pinosta. RBP rekisteri. 160 00:12:18.040 --> 00:12:22.260 Palauttaen sitten kutsuvan aliohjelman kehyksen. 161 00:12:22.260 --> 00:12:27.190 Kutsuvan proseduuri no kehys. No niin. 162 00:12:27.190 --> 00:12:31.980 Siellä se kaikki löytyy ja ja mitä meidän tästä piti muistaa niin voidaan 163 00:12:31.980 --> 00:12:35.970 tota luottaa siihen että nää kaikki on tarkkaan määriteltyjä. 164 00:12:35.970 --> 00:12:38.870 Jos asia poikkeaa määritelmästä niin. 165 00:12:38.870 --> 00:12:42.350 Sitten jossain on virhe, joka järjestelmässä kääntäjässä tai siinä, 166 00:12:42.350 --> 00:12:45.680 että se määritelmässä tai siinä laitteessa. 167 00:12:45.680 --> 00:12:53.140 Ja, mutta nää on sopimuksia siitä, että kun meillä on ops code operaatiokoodi eli tabu. 168 00:12:53.140 --> 00:12:55.120 C 9. 169 00:12:55.120 --> 00:13:02.960 Niin silloin tää on se toiminta mikä tapahtuu ja tossa myös sanotaan. 170 00:13:02.960 --> 00:13:08.220 Sanotaan, että. Kolmekymmentäkaksi bittisissä. 171 00:13:08.220 --> 00:13:14.960 Toiminta niin tota olisi ihan sama olla 2 käskyä jotka olisi sitten nuo. 172 00:13:14.960 --> 00:13:19.160 Mutta tää on tämmöinen näppäryysky mikä löytyy tästä prosessorista 173 00:13:19.160 --> 00:13:24.500 voidaan laittaa takuuseen 9 niin sitten. Nää. 174 00:13:24.500 --> 00:13:28.620 Luvatut asiat tapahtuu. Omatoimisen harjoittelun. 175 00:13:28.620 --> 00:13:32.420 Kautta sitten. Joo hyvä. 176 00:13:32.420 --> 00:13:37.850 Tutkia näitä debussynäkymiä tullaan huomaamaan, että. 177 00:13:37.850 --> 00:13:40.590 Aina tommoisen. 178 00:13:40.590 --> 00:13:46.950 Aliohjelma lopussa on tuommoinen liivi ja sitten siellä alussa. 179 00:13:46.950 --> 00:13:50.490 On muutama konekielinen käsky. 180 00:13:50.490 --> 00:13:55.370 Jotka vastaavasti luo tämmöisen menokehyksen? 181 00:13:55.370 --> 00:13:58.480 Tää on sitten oikeastaan jo se syy siihen, että miksi 182 00:13:58.480 --> 00:14:02.560 kääntäjä on tehnyt koodia jo tästä. 183 00:14:02.560 --> 00:14:08.500 Rivistä, jossa pelkästään kerrotaan, että nyt alkaa paljon. 184 00:14:08.500 --> 00:14:12.190 Käykö tää järkeä? No niin studio ja yleensä nyökkäilee. 185 00:14:12.190 --> 00:14:17.470 Hyvä toista vaan. Ja ja tota. 186 00:14:17.470 --> 00:14:21.440 Se, että täällä asia kerrotaan, se tuntuu selvältä. 187 00:14:21.440 --> 00:14:27.000 Se ei ole selvää, kunnes pystyt itse. Katsomaan kokeilemaan. 188 00:14:27.000 --> 00:14:30.480 Onko se oikeasti näin? 189 00:14:30.480 --> 00:14:34.320 Eli eli kaikki mitä aihepiiri videoissa käydään niin pitää johtaa 190 00:14:34.320 --> 00:14:36.820 siihen että kokeilemaan heti itse näitä taitoja. 191 00:14:36.820 --> 00:14:38.620 Pystynkö luomaan itse? 192 00:14:38.620 --> 00:14:43.160 Pystynkö toistamaan näitä mitä me tällä hetkellä pystyn näistä ymmärtää mitä en vielä. 193 00:14:43.160 --> 00:14:53.590 Sitten kysymään se asia. No sellaista oli tarkoitus käydä sitten. 194 00:14:53.590 --> 00:15:00.620 Mitä muuta? Tuolle kääntäjälle niin vipuja niin. 195 00:15:00.620 --> 00:15:03.760 Voi antaa niin ensinnäkin voisi. 196 00:15:03.760 --> 00:15:08.100 Laittaa jonkun näppärän nimen sitten jonka haluaa kun se a. 197 00:15:08.100 --> 00:15:12.740 Out niin se tulee ihan sillä lailla että 2 argumenttia peräkkäin joista yksi on– 198 00:15:12.740 --> 00:15:17.420 ole pikku ja sitten välilyönti ja sitten seuraava argumentti tulee niin se on hei 199 00:15:17.420 --> 00:15:22.860 maailma ja nyt sitten tultiin tuossa kääntäjässä on se, että tulostiedot eli käännetyn 200 00:15:22.860 --> 00:15:25.810 ohjelma tiedoston nimi pitäisi olla hei maailma. 201 00:15:25.810 --> 00:15:29.890 No niin ja sitten vielä yksi aika tärkeä voisi mielellään 202 00:15:29.890 --> 00:15:34.010 laittaa aina isow ja pienillä all. 203 00:15:34.010 --> 00:15:41.910 Tämä tarkoittaa että varoita nuo kaikista pienimmistäkin ohjelmointiput tota 204 00:15:41.910 --> 00:15:45.910 erheestä, joita siellä ehkä näyttäisi mahdollisesti olevan siinä koodissa 205 00:15:45.910 --> 00:15:49.010 elikkä tuo kääntäjä osaa jonkun verran tutkailla. 206 00:15:49.010 --> 00:15:51.660 Varoittaa asioista jotka. 207 00:15:51.660 --> 00:15:56.540 Perhana soikoon on siellä kielessä sallittuja speksin mukaisesti. 208 00:15:56.540 --> 00:15:58.590 Mutta jotka. 209 00:15:58.590 --> 00:16:02.710 Johtaa ongelmiin ja todennäköisesti ei ole sitä mitä ottaa tarkoittanut niin kaikilta varuilta 210 00:16:02.710 --> 00:16:07.980 kannattaa tuommoinen rimpsu yleensä olla olla että varoita kaikesta ja. 211 00:16:07.980 --> 00:16:11.370 Nyt siinä huh tähän asti aihepiirin videossa nähdyt. 212 00:16:11.370 --> 00:16:17.200 Se ei ole pujahtanut sinne ohjelmaan sellaisia varoituksen kohteita. 213 00:16:17.200 --> 00:16:19.020 Niitä voisi tulla. 214 00:16:19.020 --> 00:16:23.600 No joo käännellään vielä yksi mikä auttaa näitä omatoimisia kokeiluja. 215 00:16:23.600 --> 00:16:29.420 Nytten niin on iso kirjain ja sitten nolla niin manuaalista voi taas tarkistaa. 216 00:16:29.420 --> 00:16:34.800 Niin tää pyytää olemaan optimoimaan sitä koodia. 217 00:16:34.800 --> 00:16:36.600 Niin niin. 218 00:16:36.600 --> 00:16:40.970 Silloin tota toi kääntäjä mahdollisimman vähän. 219 00:16:40.970 --> 00:16:45.950 Etsii automaattisesti tämmöisiä nopeutuisi tai pienennyskeinoja. 220 00:16:45.950 --> 00:16:47.750 Sitten sille konekielellä. 221 00:16:47.750 --> 00:16:49.990 Silloin me me nähdään niinku. 222 00:16:49.990 --> 00:16:55.230 Oppimisen kannalta selkeämmin näitä asioita. 223 00:16:55.230 --> 00:16:58.650 Niin tuommoisella rimpuilla on varmaankin. 224 00:16:58.650 --> 00:17:02.520 Hyvä niinku kaikki käännökset pyrkiä tekemään nyt tässä. 225 00:17:02.520 --> 00:17:09.400 Tässä kurssilla ja ja tota. Tai harjoitellessa. 226 00:17:09.400 --> 00:17:13.050 Aihepiiri videossa ei puhuta kurssista vaikka tää jollain kurssilla 227 00:17:13.050 --> 00:17:15.840 tapaa kun omatoimisesti harjoittelet. 228 00:17:15.840 --> 00:17:17.640 Laita tuoma streamista se on. 229 00:17:17.640 --> 00:17:23.120 Se on niinku hyvä jos haluaa vielä tuota standardia niinku olla olla niinku sen kanssa tarkka 230 00:17:23.120 --> 00:17:28.000 niin sitten sitten tota muistelisin että tämmöinen pedantti saattoi olla. 231 00:17:28.000 --> 00:17:32.620 Saattoi olla se se vipu jolla voi sitten pyytää että jos jos nyt käytit uudempaa 232 00:17:32.620 --> 00:17:36.740 ominaisuutta mitä vielä vuonna tuhatyhdeksänsataayhdeksänkymmentäyhdeksän neuvottelussa 233 00:17:36.740 --> 00:17:40.370 se standardissa ei ollut niin sitten se vielä. 234 00:17:40.370 --> 00:17:43.990 Kirkui siitäkin, että nyt nyt ette ole peräti. 235 00:17:43.990 --> 00:17:50.210 Haluamme siis standardin mukainen. 236 00:17:50.210 --> 00:17:54.550 No näillä sivuilla voidaan muuten kokeilla vielä ihan vaan esimerkin 237 00:17:54.550 --> 00:18:00.960 vuoksi, että mitä tekisi vaikkapa sitten tämmöinen 3 vipu mikä pyytää 238 00:18:00.960 --> 00:18:03.930 optimoimaan suorituskykyä ihan tosi paljon. 239 00:18:03.930 --> 00:18:08.130 Siinä on tasoja 1, 2 ja 3. 240 00:18:08.130 --> 00:18:13.850 Ja ja tota nyt katsotaan, DP ja hei, maailma oli nytten 241 00:18:13.850 --> 00:18:18.890 ohjelmatiedostot nimi ja diesel. 242 00:18:18.890 --> 00:18:22.560 Kautta MR min ihan ei tarvinnut edes käynnistää. 243 00:18:22.560 --> 00:18:30.310 Niin niin. Joo siellä nyt on on tota. 244 00:18:30.310 --> 00:18:35.650 Optimoinnin tuloksena tullut sellaisia asioita, jotka ei ole ihan päivänselviä. 245 00:18:35.650 --> 00:18:39.910 Päivän selviää tuota niin niin. 246 00:18:39.910 --> 00:18:45.910 Se on se on osannut tehdä sinne sinne tota poissulkevalla or operaatiolla 247 00:18:45.910 --> 00:18:47.980 esimerkiksi rekisteri itsensä kanssa. 248 00:18:47.980 --> 00:18:49.780 Niin tota tää on ihan tyypillistä. 249 00:18:49.780 --> 00:18:53.720 Tietysti myös jos konekielellä päätyy ohjelmoimaan huviksi ja harrastukseksi, 250 00:18:53.720 --> 00:18:58.410 niin ilman muuta tuo on se tapa jolla niinku saadaan nolla. 251 00:18:58.410 --> 00:19:04.620 Johonkin niin tota tehdäänx operaatio sen sijaintipaikan itsensä kanssanne tota silloin 252 00:19:04.620 --> 00:19:10.690 tuloksena siihen muodostuu nolla siihen paikalle elikkä elikkä olkoon me muuttuja ei 253 00:19:10.690 --> 00:19:15.530 nolla niin niin sehän oli tuollaiset sour operaattorilla kun se optimoidaan suorituskyky 254 00:19:15.530 --> 00:19:19.990 se on silloin se on silloin lyhyempi käsky ja sitten se on nopeampi suorittaa kun kun 255 00:19:19.990 --> 00:19:26.730 se että että oikeasti kopioitaisiin nolla tuolta. 256 00:19:26.730 --> 00:19:31.440 Muistista käskyn osana sinne rekisteriin. 257 00:19:31.440 --> 00:19:34.900 Ei niin tähän kärryä, minkä takia tuossa näyttäisi olevan tota. 258 00:19:34.900 --> 00:19:41.090 No ei ei niinku käsittääkseni ei operaatiota ja tota sitten kuitenkin jotain tapahtuu. 259 00:19:41.090 --> 00:19:46.280 Ehkä niin tota aika mielenkiintoinen mielenkiintoinen nää menee siis tää. 260 00:19:46.280 --> 00:19:50.230 Sumentaa kovasti sitä että että että mitä oppimisen kauttakin 261 00:19:50.230 --> 00:19:55.240 kautta voidaan tehdä tietysti plus ykkönen niin. 262 00:19:55.240 --> 00:20:07.080 Plus ykkönen on edelleen vaan at yks. Sitten tota. 263 00:20:07.080 --> 00:20:11.620 Siellä on myös joo elikkä nyt verrattuna äskeiseen näkymään tää optimoinut 264 00:20:11.620 --> 00:20:15.950 nätisti niin että tuossa on jo 3 rivin hyvien 5 6 7 toiminnasta on 265 00:20:15.950 --> 00:20:18.850 loppujen lopuksi oikeastaan tullut vaan. Vaan tota käydä. 266 00:20:18.850 --> 00:20:20.650 2. 267 00:20:20.650 --> 00:20:26.500 20 elikkä ja ne tamara ihan täysin nää niinku nää nää. 268 00:20:26.500 --> 00:20:31.020 Oppimisen kannalta alkuvaiheessa relevantit youtube elikkä tää on sitten 269 00:20:31.020 --> 00:20:36.020 niinku sitä myöhemmän elämän asiaa jos joudut tekemään vaikka näitä kääntäjiä 270 00:20:36.020 --> 00:20:39.180 jotka sitten optimoi koodia niin sitten. 271 00:20:39.180 --> 00:20:41.200 Sitten sitten tota tarvitsee. 272 00:20:41.200 --> 00:20:43.860 Tarvitsee palata näihin elikkä elikkä tää nyt mitä se 273 00:20:43.860 --> 00:20:46.910 optimointi tekee niin tällaisia juttuja. 274 00:20:46.910 --> 00:20:53.260 Joo, ja nyt sitten meidän oli hyvä laittaa. Se on ollut sitten niin. 275 00:20:53.260 --> 00:20:57.770 Ollaan. Ollaan tota. 276 00:20:57.770 --> 00:20:59.690 Sample. 277 00:20:59.690 --> 00:21:06.960 Me ei kautta MR saikohan sillä että ei saanut tohon laittaa vaan ennen mainio noin. 278 00:21:06.960 --> 00:21:13.290 No niin ku sitten. Sitten meillä tota. 279 00:21:13.290 --> 00:21:17.740 Tapahtui oikeasti nolla siirtäminen. 280 00:21:17.740 --> 00:21:25.320 Vieläpä ei suoraan rekisteriin vaan vaan tota pinokehyksen muistiin. 281 00:21:25.320 --> 00:21:28.410 Menee sitten. Nolla. 282 00:21:28.410 --> 00:21:34.090 Ei tehokasta, mutta kaikki on silloin sellaista kuin mitä voit ehkä. 283 00:21:34.090 --> 00:21:38.690 Löytää sitten jostain vaikkapa suomenkielisestä oppimateriaalista, 284 00:21:38.690 --> 00:21:42.510 jota voi sitten jollain kurssilla vaikka olla. 285 00:21:42.510 --> 00:21:47.350 Olla käytössä sitten niin niin siellä voi olla sitten. 286 00:21:47.350 --> 00:21:53.830 Sitten tota. 287 00:21:53.830 --> 00:21:58.350 Jossain vaiheessa tulla vastaan sitten tästä tietokoneen muistista esimerkiksi. 288 00:21:58.350 --> 00:22:01.660 Näistä pinokehyksestä niin. 289 00:22:01.660 --> 00:22:03.520 Kaikki vastaa paljon lähemmin. 290 00:22:03.520 --> 00:22:09.190 Nyt sitten näitä perusajattelumalleja kun jätetään se optimointi pois. 291 00:22:09.190 --> 00:22:12.510 Joo no sitten kun alkaa uskoa että siellä niitä tavuja on 292 00:22:12.510 --> 00:22:18.440 ja sieltä ne sieltä ne spekseistä määräytyy. 293 00:22:18.440 --> 00:22:26.700 Niin sitten voi pitää ollauksessa ottaa siitä pois sen sen mikä mikä tota. 294 00:22:26.700 --> 00:22:30.980 Pyytää sen tavun jonon näyttämisen, elikkä se oli tuo 295 00:22:30.980 --> 00:22:34.390 kautta niin sitä ei tarvitse mutta. 296 00:22:34.390 --> 00:22:37.520 Tuo kautta niillä budjetilla niin se on. 297 00:22:37.520 --> 00:22:39.940 Se on hyvä olla koska sitten. 298 00:22:39.940 --> 00:22:45.230 Se, että pysytään kartalla siitä, että. Mitä se on? 299 00:22:45.230 --> 00:22:47.120 Lähdekoodi oli? 300 00:22:47.120 --> 00:22:52.860 Synnytyksissä on sitten eroja ja tää sitten aiheuttaa alussa päänvaivaa ja 301 00:22:52.860 --> 00:22:58.750 ja loppuelämän se päänvaiva siellä pysyy että täällä niin. 302 00:22:58.750 --> 00:23:00.610 Tosiaan on on nää rekisterit. 303 00:23:00.610 --> 00:23:05.340 Esimerkiksi meillä on prosentti merkille ja pienillä kirjaimilla kun kun. 304 00:23:05.340 --> 00:23:07.750 Kun ne tota tuolla. 305 00:23:07.750 --> 00:23:11.270 AMDN ja intelli dokumentaatiossa, niin ne on isoilla 306 00:23:11.270 --> 00:23:15.940 kirjaimilla ilman prosenttimerkkiä. 307 00:23:15.940 --> 00:23:20.200 Eli samoista asioista puhutaan, mutta sitten. 308 00:23:20.200 --> 00:23:24.540 Toinen olennainen juttu, että nää eri päin elikkä nyt aina kun puhutaan 309 00:23:24.540 --> 00:23:27.320 ensimmäisestä operaatiosta ja toisesta operaatioista. 310 00:23:27.320 --> 00:23:33.930 Tämä jo kertausta taas edellisestä, mutta jos jos jossain on niinku. 311 00:23:33.930 --> 00:23:38.990 Tällaista seksissä on move ESPEB, niin tuolla meidän meidän 312 00:23:38.990 --> 00:23:41.550 synnytyksissä niin niin niin se se onkin. 313 00:23:41.550 --> 00:23:45.550 Oikeastaan se on pikkuisella kirjaimilla. 314 00:23:45.550 --> 00:23:52.170 Ensinnäkin myös se se movi ja sitten siinä olisi aina mukana sitten pikku ilmestymässä 315 00:23:52.170 --> 00:23:56.080 sitä, että tää on kolmekymmentäkaksi bittinen operaatio. 316 00:23:56.080 --> 00:23:58.290 Ja se pikkuisen vielä. 317 00:23:58.290 --> 00:24:04.720 On on tuossa synnytyksissä alussa vähän häivää, että siellä on pikku tai pikku kun se on 318 00:24:04.720 --> 00:24:11.010 kuusikymmentäneljä bittinen niinku 60 ne ei oikeasti se on niinku word eli eli. 319 00:24:11.010 --> 00:24:18.170 4 sanaa josta sitten sanaa on vähentää kun mittainen ja silleen niin ja niinku long 320 00:24:18.170 --> 00:24:23.220 word elikkä elikkä se on pienillä kirjaimilla siellä perässä jos puhutaan tuommoista 321 00:24:23.220 --> 00:24:27.370 kolmekymmentäkaksi bittistä rekisteriä siirrosta ja sitten mikä tärkeintä on erittäin 322 00:24:27.370 --> 00:24:32.210 elikkä nyt tässä niinku se peilaus pitää päässä tehdä, että nyt nyt kun me nähdään 323 00:24:32.210 --> 00:24:37.590 tota ATNTN sen taksin gnu varianttia. 324 00:24:37.590 --> 00:24:41.730 Niinku murretta, niin siinä meillä olisi tuommoinen esimerkiksi niin se olisi 325 00:24:41.730 --> 00:24:46.370 pienillä kirjaimilla nuo rekisterin nimet niinku pikku EBP ja. 326 00:24:46.370 --> 00:24:48.590 Tämä näet se. 327 00:24:48.590 --> 00:24:52.880 Lähde niin sanottu lähde on ensimmäisenä ja. 328 00:24:52.880 --> 00:24:59.480 , on syntaksia sama sitten tota tuo prosentti ja pienillä kirjaimilla niin. 329 00:24:59.480 --> 00:25:02.500 ESP. 330 00:25:02.500 --> 00:25:08.990 Tällaisia asioita pitää pärjätä syy silleen, että näissä aihepiireissä käytetään 331 00:25:08.990 --> 00:25:13.340 tätä syntaksia, joka on peilikuvana ja sisältää niitä prosenttimerkkejä ja pikku 332 00:25:13.340 --> 00:25:18.200 älliä ja pikku puuta ja joitain tiettyjä muitakin eroja. 333 00:25:18.200 --> 00:25:23.570 Niin on se, että ensinnäkin se on oletuksena. 334 00:25:23.570 --> 00:25:26.330 Käytössä se meidän työkaluissa. 335 00:25:26.330 --> 00:25:29.130 Ja sitten niin näiltä voisi pyytää tuon sen taksin. 336 00:25:29.130 --> 00:25:33.870 Myöskin tuossa intel formaatissa. 337 00:25:33.870 --> 00:25:38.850 Mutta näiden reaalimaailman dokumentaatiot, joita me nyt tutkitaan, niin me 338 00:25:38.850 --> 00:25:44.960 on näitä linuxin reaalimaailman dokumentaatiota esimerkiksi. 339 00:25:44.960 --> 00:25:49.800 Jälleen täysin netistä ladattavissa oleva syysve. 340 00:25:49.800 --> 00:25:55.760 Abi eli application dinerin interface AD sixty for architecture processor supplement craft 341 00:25:55.760 --> 00:26:03.250 version share point ninety nine point siksi niin täällä puhutaan kanssa tota. 342 00:26:03.250 --> 00:26:06.270 Samalla tällä syntaksilla eli siellä on prosenttimerkkirekisterissä. 343 00:26:06.270 --> 00:26:11.930 Ne on pienillä kirjaimilla ja järjestys on noin noin päin ja sitten lisää eroja 344 00:26:11.930 --> 00:26:18.220 tulee meillä vastaan elikkä elikkä kun meillä on on sitten. 345 00:26:18.220 --> 00:26:22.720 Prosenttimerkillä pienillä kirjaimilla rekisterin nimi suluissa. 346 00:26:22.720 --> 00:26:26.810 Ja sitten sen vasemmalla puolella on joku luku. 347 00:26:26.810 --> 00:26:31.550 Niin niin tämä sitten tarkoittaa rekisterin sisältöä. 348 00:26:31.550 --> 00:26:37.310 Plus sitten tämä vasemmalla oleva luku ja ja tota tässä on siis semmoisia 349 00:26:37.310 --> 00:26:41.180 mitkä siinä toisessa synnytyksissä mitä noissa manuaalissa taas on niin 350 00:26:41.180 --> 00:26:46.590 se olisi niinku tuossa olisi isoilla RBB. Plus. 351 00:26:46.590 --> 00:26:50.160 16. Niin se olisi näin päin. 352 00:26:50.160 --> 00:26:53.080 Nyt tässä mitä nähdään, niin meillä on suluissa prosentti 353 00:26:53.080 --> 00:26:58.480 pienillä RB ja sitten vasemmalla on 16. 354 00:26:58.480 --> 00:27:01.360 Tuolla taas tarkkaavaisuuskysymys manuaalissa. 355 00:27:01.360 --> 00:27:05.680 Mitä me nähdään? Kun meidän työkaluissa nyt me nähdään. 356 00:27:05.680 --> 00:27:23.500 -8 suluissa prosenttia RVP. 357 00:27:23.500 --> 00:27:27.730 Joo joo, ei vaan meidän meidän tuolla. 358 00:27:27.730 --> 00:27:36.920 Manuaaleja and emanuel tuollainen sanottaisiin tuota RBP isoilla kirjaimilla. 359 00:27:36.920 --> 00:27:39.400 Niin -8. 360 00:27:39.400 --> 00:27:46.670 Joo eli tää niinku tää syntaksi syntaksi ero historiasta johtuvat joo. 361 00:27:46.670 --> 00:27:49.530 Muutama erilaista käytäntöä on ollut ja edelleen on käytössä 362 00:27:49.530 --> 00:27:56.330 ja sitten työkalut käyttää näitä eri itse. Harrastelen tuota niin. 363 00:27:56.330 --> 00:28:01.250 Sitä demoskenee ja niiden pienten ohjelmien tekemistä ja uusimpana opettelin viime kesänä 364 00:28:01.250 --> 00:28:05.580 windowsille tekemään nyt sitten niihin konekielellä yksi kilotavua tuotoksen. 365 00:28:05.580 --> 00:28:09.170 Se tuli kisassa viimeiseksi jonkun pitää tulla kisassa viimeiseksi ja tuota ihan 366 00:28:09.170 --> 00:28:12.750 ansaittua oli kaikki se kommentointi sieltä sieltä yleisestä, että nyt siinä 367 00:28:12.750 --> 00:28:17.270 on muumimamma laitettu ja mikä on helpoin niinku graafinen efekti niin saadaan 368 00:28:17.270 --> 00:28:19.410 aikaan palloja jotka vähän sulautuu toisiinsa. 369 00:28:19.410 --> 00:28:21.310 Voitte katsoa, se löytyy. 370 00:28:21.310 --> 00:28:26.290 Master assembly summer 2000 kaksikymmentäkaksi viimeinen sija yksi 371 00:28:26.290 --> 00:28:28.430 kilon kilpailussa, mutta sinne kirjoitin ilman muuta. 372 00:28:28.430 --> 00:28:31.970 Tässä sitten niinku omasta mielestä mukavammalla syntaksilla, joka on sitten 373 00:28:31.970 --> 00:28:36.600 toi manuaalienkin käyttämä ja sitten semmoisella mm. 374 00:28:36.600 --> 00:28:42.470 Nimisellä. Konekieli kääntäjällä sitten. 375 00:28:42.470 --> 00:28:44.380 Sitä on tehnyt vuodesta. 376 00:28:44.380 --> 00:28:49.090 Vuodesta toiseen tota sitten myös linuxilla sitten. 377 00:28:49.090 --> 00:28:54.330 Omasta mielestä tein tein hienoimman yksi kilon avun linux binäärin aikoinaan nimenomaan 378 00:28:54.330 --> 00:28:59.280 tällä sen taksilla, mikä on sitten myös manuaalissa tota. 379 00:28:59.280 --> 00:29:02.770 Aikoinaan sen jälkeen tuli hienompi hieno, mutta nyt mä oon takaisin mallinnuksella 380 00:29:02.770 --> 00:29:07.020 selvittänyt kikat siitä, että jatkossa mä tulen tekemään. 381 00:29:07.020 --> 00:29:10.080 Jonain päivänä taas hienoa. 382 00:29:10.080 --> 00:29:13.260 Joo, mutta syyt silleen että käytetään niin on se, että meidän työkalut 383 00:29:13.260 --> 00:29:18.130 oletuksena tukee ja sitten nää linux maailmasta tulevat reaalimaailman dokumentaatiot 384 00:29:18.130 --> 00:29:23.200 niinku tää syysvehnäbi niin käyttää tota. 385 00:29:23.200 --> 00:29:25.180 Syntaksia mutta nää on vaan synteettisiä eroja. 386 00:29:25.180 --> 00:29:29.960 Edelleen se laite joka toimii samalla aina nyt sitten mitä näissä työkaluissa 387 00:29:29.960 --> 00:29:35.110 nähdään niin lähde on vasemmalla kohde oikealla. 388 00:29:35.110 --> 00:29:38.780 Tuossa toisessa synnytyksessä first operan. 389 00:29:38.780 --> 00:29:44.110 On kohde ja lähde on se toinen, mutta tabujonot mitä voi kolata 390 00:29:44.110 --> 00:29:50.900 niin ne on samat kun se on samanlainen. Sama speksiä. 391 00:29:50.900 --> 00:29:55.460 Joo, mikään näistä ei ollut mainosta millekään firmalle 392 00:29:55.460 --> 00:29:58.380 ja en tiedä pitääkö ruveta mainitsemaan kun. 393 00:29:58.380 --> 00:30:01.950 Kun kun minä ihan pienen sijoittajaksi ryhdyin kun se oli niin hauskaa ja helppoa niin 394 00:30:01.950 --> 00:30:08.650 tota omistan muutamia osakkeita sekä advanced mikrobincea että inteliä. 395 00:30:08.650 --> 00:30:11.380 Mutta tarkoittaa sitä, että jos ostat kyseisen laitteen, 396 00:30:11.380 --> 00:30:14.360 niin saan siitä ehkä tätä miljardisosan. 397 00:30:14.360 --> 00:30:17.870 Dollarin sitten tuota vuoden päästä osinkona että en koe. 398 00:30:17.870 --> 00:30:19.700 En koe että tämä vaikuttaa. 399 00:30:19.700 --> 00:30:24.170 Tuota vaikuttaa millään lailla nyt tähän niinku vastuuseen näistä valinnoista. 400 00:30:24.170 --> 00:30:31.720 Mitä täällä tehdään että että että tota mutta on tuotiin julki nyt sekin sekin asia. 401 00:30:31.720 --> 00:30:35.710 Nää miten manuaalit on hyvin kirjoitettu ja on ne intiimit, mutta käytämme näitä. 402 00:30:35.710 --> 00:30:42.720 Nää on hyviä ja perusteella näiden käyttämiselle on se, että AD tosiaan kerkesi ekana 403 00:30:42.720 --> 00:30:46.860 muodostaa tän kyseisen speksi kuusikymmentäneljä viitisen, joka laajentaa intelin 404 00:30:46.860 --> 00:30:50.170 kylläkin tekemää kolmekymmentäkaksi teknistä arkkitehtuuria. 405 00:30:50.170 --> 00:30:54.680 Kerro jos ei kuulu mitään. 406 00:30:54.680 --> 00:31:00.180 Ja kun kaikilla on taskussa saa armi niin armille löytyy ihan vastaava kyseiset ja riskiveille 407 00:31:00.180 --> 00:31:05.860 löytyy kanssa ihan vastaavat kyseiset paperit että just joo ja tää tää kaikki nyt näissä 408 00:31:05.860 --> 00:31:09.630 aihepiirin videoissa tää on nyt esimerkki joka on. 409 00:31:09.630 --> 00:31:12.270 Sattumalta kaikille saatavissa esimerkiksi siinä ympäristössä, missä 410 00:31:12.270 --> 00:31:17.100 me tehdään, mutta google auki ja arm prosessor. 411 00:31:17.100 --> 00:31:26.290 Kiitos tuure, niin eiköhän se näyttäisi sitten arm nimisen nimisen tota firman. 412 00:31:26.290 --> 00:31:30.570 Nettisivuilta varmasti pääsee taas heidän prosessorin arkkitehtuuriin. 413 00:31:30.570 --> 00:31:35.420 Tota. Manuaaleja. 414 00:31:35.420 --> 00:31:38.310 Jotka olennaisesti samanlaisia. 415 00:31:38.310 --> 00:31:43.200 Hierarkisesti jäsentyvät dokumentteja niin monta 1000 sivua kun niitä tarvitaan. 416 00:31:43.200 --> 00:31:48.510 Ja ja tota. Lopulta sieltä. 417 00:31:48.510 --> 00:31:52.040 Pystytään, pystytään sitten pääsemään. 418 00:31:52.040 --> 00:31:56.180 Pääsemään esimerkiksi jonkun tietyn. Pitää äsken. 419 00:31:56.180 --> 00:32:01.410 Kohdalle. Tuolla on enter sitten esimerkki. 420 00:32:01.410 --> 00:32:04.310 Joka on sitten vastinpari. 421 00:32:04.310 --> 00:32:09.840 Tolle leiville elikkä mä taas rakentaa aliohjelman pinokehyksen. 422 00:32:09.840 --> 00:32:15.790 Ja siinä. Oikeastaan toi speksi. 423 00:32:15.790 --> 00:32:19.960 Spoilaan pitkälti sitä mitä harjoitellaan nyt tällä kurssilla pikkaisen itse. 424 00:32:19.960 --> 00:32:25.170 Rakentelemaan ja voidaan havaita näistä ulosteista, että syntaksia 425 00:32:25.170 --> 00:32:30.000 vaille samoja juttuja täältä tapahtuu eli kun vertaa. 426 00:32:30.000 --> 00:32:32.760 Niin täällä tapahtui. 427 00:32:32.760 --> 00:32:39.560 Tutun näköistä asiaa tuossa tilalla voisi käyttää enter nimistä käskyä ja nyt pitää huomata 428 00:32:39.560 --> 00:32:43.820 että on kuusikymmentäneljä bittinen kun näissä on täällä alussa ja kolmekymmentäkaksi 429 00:32:43.820 --> 00:32:49.200 bittinen on edelleen mahdollinen sitten siinä tuossa alussa. 430 00:32:49.200 --> 00:32:52.960 Ja nää peilikuvana kaikki tällä näillä näin niin tota mutta joo 431 00:32:52.960 --> 00:32:56.110 tää ei opi sillä että katsot katsoit tämän videon. 432 00:32:56.110 --> 00:32:59.610 Hyvä että katsoit koska tää oli käynnistys lähtölaukaus silleen että nyt kokeilemaan 433 00:32:59.610 --> 00:33:05.250 kun mä taidothan näpeissä niin niin niin tätä tätä asiaa. 434 00:33:05.250 --> 00:33:12.610 Ja ja tota. Päätteeksi tähän niin. 435 00:33:12.610 --> 00:33:19.500 Vielä siitä hei maailmasta niinku tota. Tosiaan sitä. 436 00:33:19.500 --> 00:33:24.680 Päästään sitten sitten tota rakentelemaan kokeilemaan mitenkä se kieli nyt toimi, että entäs 437 00:33:24.680 --> 00:33:29.350 jos meillä meillä olisi puretaan viritys ja tehdään aliohjelmakutsu oikein suorastaan tuohon 438 00:33:29.350 --> 00:33:37.630 että että kutsutaan heippa ja puretaan tuosta tuo viritys noista. 439 00:33:37.630 --> 00:33:43.450 Näistä tuota. 440 00:33:43.450 --> 00:33:46.330 Tosta varmaan pitäisi nyt tulla käänteen varoituskin katsotaan 441 00:33:46.330 --> 00:33:50.460 tuleeko kun mä pyysin varoittamaan niin joo. 442 00:33:50.460 --> 00:33:56.560 Niin niin se tota varoittaa paristakin jutusta ja sen takia se olkin olla elikkä nyti. 443 00:33:56.560 --> 00:34:01.410 Tuossa on vähän sillä lailla, että että tuollaista ei nyt siellä. 444 00:34:01.410 --> 00:34:06.830 Varmaan pitäisi olla kun ei tuossa tarvittu ja sitten tässä oli ohjelmassa 445 00:34:06.830 --> 00:34:12.950 vielä niin tota oli sitä undefined kaveria nyt että kun luvattiin että sieltä 446 00:34:12.950 --> 00:34:15.680 jotain palautetaan esimerkiksi pitää tehdä ja. 447 00:34:15.680 --> 00:34:19.990 Tätä kautta ja tää on normaalia ja nuo ystäviä nuo ilmoitusta ja tähdätään siihen 448 00:34:19.990 --> 00:34:24.600 että ymmärretään kaikki mitä tehtiin päästään kokeilemaan päästään demokratialla 449 00:34:24.600 --> 00:34:29.490 katselemaan että mielikuvamallia vastaa se nykyinen. 450 00:34:29.490 --> 00:34:34.140 Ja ja tota ymmärretään. Mitä nää? 451 00:34:34.140 --> 00:34:36.020 Mitä nää sitten? 452 00:34:36.020 --> 00:34:40.410 Meille kannattaa kertoa, että saadaan sen kysymyksiä sitten. 453 00:34:40.410 --> 00:34:42.970 Aukeamaan. Tuossa on sitten. 454 00:34:42.970 --> 00:34:47.900 Kutsu jo heippa ali ohjelmalle, joka voidaan sieltä. 455 00:34:47.900 --> 00:34:52.660 Pyytää myös näkymään ja tuossa me nähdään yksi, mikä toivottavasti olisi tarttunut 456 00:34:52.660 --> 00:34:55.970 silmään, ehkä mahdollisesti kauan sitten jo ensimmäisessä. 457 00:34:55.970 --> 00:35:00.940 Hei maailman esimerkissä tuo kääntäjä on tehnyt vekkulin jutun. 458 00:35:00.940 --> 00:35:09.070 Mulla koodissa lukee printf tää oikeasti kutsuu kirjastosta puh nimistä aliohjelma 459 00:35:09.070 --> 00:35:15.330 se on se on se on tota tehnyt jutun joka toivottavasti heräsi kysymyksenä. 460 00:35:15.330 --> 00:35:19.780 Kun tämä tämä näkyi pieni tarkkaavaisia kysymys ei haittaa jos ei se herännyt. 461 00:35:19.780 --> 00:35:23.250 Tää on sellainen juttu, että se keksii tuossa että on tehokkaampaa kutsua 462 00:35:23.250 --> 00:35:28.370 puut vaikka käyttäjä haluaisi printf käyttää ehkä näin. 463 00:35:28.370 --> 00:35:34.250 No tämä siis googletuksen kautta sitäkö overflow kaivettu eilen 464 00:35:34.250 --> 00:35:38.710 no built in rinteen niin nyt ei ehkä voisin. 465 00:35:38.710 --> 00:35:44.300 Kääntää siten, että nyt älä tee tämmöistä tämmöistä temppua vaan vaan tota. 466 00:35:44.300 --> 00:35:47.750 Nyt. Vertaa äkkiä. 467 00:35:47.750 --> 00:35:55.550 Tuota vielä, että saanko mielikuvan mallin mukaisesti nyt sen heippa aliohjelman. 468 00:35:55.550 --> 00:35:57.510 Kutsumaan oikeasti printf aaltio. 469 00:35:57.510 --> 00:36:00.410 Sanoin, että tuossa niinku tässä takaisin mallinnuksen kautta huomasin 470 00:36:00.410 --> 00:36:03.430 tämmöisen jutun, mikä on kylläkin tuo gnu kääntäjän. 471 00:36:03.430 --> 00:36:07.600 Niin kyllä se niinku ihan luvatusti näin tekee ja sprin täysin laittanut ja sitten vaan jotain 472 00:36:07.600 --> 00:36:13.940 ja rivinvaihdon niin se korvaa siihen tilalle tehokkaamman tavan tehdä sama. 473 00:36:13.940 --> 00:36:17.110 No niin. Mutta kaikki saa selityksen. 474 00:36:17.110 --> 00:36:22.250 Ihmisethän sen googlen kautta ja kysymällä kaverille. 475 00:36:22.250 --> 00:36:27.370 No nyt on varmaan evästettä se mitä hei maailmasta lähti, koska me päästiin tästä jo niinku 476 00:36:27.370 --> 00:36:31.790 aliohjelmakutsuihin ja nyt me voidaan eri aihepiirin videoissa jo sitten jatkossa ajatella 477 00:36:31.790 --> 00:36:36.200 että CGN ollaan niinku tällä tasolla ja bunkkeriin paastosta. 478 00:36:36.200 --> 00:36:42.970 Tai mennä näihin ilmiöihin tarkemmin. Joo. 479 00:36:42.970 --> 00:36:47.370 Siinä varmaan, jos haluatte kysyä jotain, mä pistän 480 00:36:47.370 --> 00:36:50.770 pauselle vaikka yliaikaa tänään ollaan. 481 00:36:50.770 --> 00:36:56.860 Joo hienosti studio yleisöstä osa jäi vielä tänne niinku sparraamaan luokkaan. 482 00:36:56.860 --> 00:37:02.750 Osa vapautettiin, mutta hei kotikatsomoissa voit jatkaa tästä kohtaa nyt meidän kanssa 483 00:37:02.750 --> 00:37:06.170 ja tuli hyviä tarkentavia kysymyksiä vielä tähän tähän aihepiiriin. 484 00:37:06.170 --> 00:37:11.190 Eli eli nyt ensinnäkin tällainen, että onko väliä, kutsuttaisiinko 485 00:37:11.190 --> 00:37:16.750 tässä sitä printf joka tässä lukee vai sitä puts mitä se kääntäjä 486 00:37:16.750 --> 00:37:22.170 sinne niinku automaattisesti halusi törkeätä. 487 00:37:22.170 --> 00:37:26.180 Niin. Tota. 488 00:37:26.180 --> 00:37:29.320 Ehkä nyt. Sanallisesti. 489 00:37:29.320 --> 00:37:31.650 Selitän. 490 00:37:31.650 --> 00:37:36.590 Että on väliä ja sillä on väliä suorituskyvyn kannalta. 491 00:37:36.590 --> 00:37:41.020 Koska mistä reaalimaailman dokumentaatiosta? 492 00:37:41.020 --> 00:37:43.470 Me voitaisiin, vaikka mehän voitaisiin varmaan niinku vetäistä 493 00:37:43.470 --> 00:37:46.830 tuohon huvikseen se selattava postiksi. 494 00:37:46.830 --> 00:37:51.240 Auki ja sieltä printf koska se se niinku. 495 00:37:51.240 --> 00:37:56.040 Delegoi tota sinne se kirjastoon. 496 00:37:56.040 --> 00:38:02.760 Asioita muun muassa sitten ton toi system interfaces osiossa 497 00:38:02.760 --> 00:38:07.390 on varmaan ollut sprint f. Ja tota. 498 00:38:07.390 --> 00:38:09.620 Kysymys siitä, löytyykö sieltä myös se puts? 499 00:38:09.620 --> 00:38:18.920 Onko se missä määrin? On se siellä joo eli eli tuossa otetaan. 500 00:38:18.920 --> 00:38:28.150 Mut speksi auki ja sitten se RPRN kohdalta löytyminen se printf. 501 00:38:28.150 --> 00:38:34.020 Kun r. R niinku printtasi tuossa. 502 00:38:34.020 --> 00:38:38.990 Noin mä tytön välilehti auki puts. 503 00:38:38.990 --> 00:38:42.070 Batch mutta yleensä se oli hyvä. 504 00:38:42.070 --> 00:38:46.150 Lähdetään jotain ennen kuin vatsa niinku peput mutta muistisääntönä voi käyttää. 505 00:38:46.150 --> 00:38:51.750 Joo niin putsaa ja ja lyhyesti kuvailtuna niin laittaa 506 00:38:51.750 --> 00:38:55.910 merkkijonon standardin ulostulo virtaa. 507 00:38:55.910 --> 00:38:59.640 Löytyy samasta paikasta SDIO otsikkotiedot kun sekin 508 00:38:59.640 --> 00:39:02.840 printf ja toimii siten että se palauttaa. 509 00:39:02.840 --> 00:39:08.940 Kokonaisluvun nimi on puts ja ottaa vakiona pysyvän. 510 00:39:08.940 --> 00:39:17.340 Merkkiin vakioina pysyin merkkeihin osoittamaan tota muistiosoitteen nimeltä 511 00:39:17.340 --> 00:39:19.440 s. 512 00:39:19.440 --> 00:39:23.460 Tää on tämmöinen ja ja tota tää tän tehtävän nyt on sen 513 00:39:23.460 --> 00:39:27.940 tulee tulee vaan kirjoittaa osoittamaan. 514 00:39:27.940 --> 00:39:33.120 Merkkijono ja sen jälkeen . 515 00:39:33.120 --> 00:39:38.330 Standardin ulostulo pirtaan eli SD on nimeltään sitten meillä cgens. 516 00:39:38.330 --> 00:39:42.110 Eli se on se, mikä sitten nähdään tuossa konsolissa tai mikä voidaan ohjata seuraavan 517 00:39:42.110 --> 00:39:48.340 ohjelman tulosteeksi putkella tai viedä tiedostoon kuoressa niin sillä. 518 00:39:48.340 --> 00:39:54.980 Suurempi kuin merkillä tai. Ja ja tota. 519 00:39:54.980 --> 00:39:57.980 Ja sitten merkkijono kielessä. 520 00:39:57.980 --> 00:40:02.120 Tää on sitten speksin nyanssi niin pitää vähän niinku ymmärretä että tätä 521 00:40:02.120 --> 00:40:07.580 kaipaa takaisin mallinnuksella niin niin niin merkkijono loppuminen tietää 522 00:40:07.580 --> 00:40:10.130 siitä, että siellä tulee vielä tavu nolla. 523 00:40:10.130 --> 00:40:15.030 Ja tossa nyt vielä täsmentää toi speksi että että sitä ei ei tulosteta. 524 00:40:15.030 --> 00:40:17.560 Se on tulkinta että yleensä se ei niinku varsinaisesti kuulu merkkien 525 00:40:17.560 --> 00:40:19.630 ole sisältöä, mutta siellä pitää se nolla olla lopussa. 526 00:40:19.630 --> 00:40:23.610 Siitä vasta tiedetään, että nyt se merkki on päättynyt. Musta sitä ei tiedetäkään. 527 00:40:23.610 --> 00:40:26.050 Se on muistiosoite johonkin mistä alkaa merkkejä ja sitten 528 00:40:26.050 --> 00:40:28.280 lopussa on nolla niin siihen asti. 529 00:40:28.280 --> 00:40:30.760 Olemme asiakirjojen merkkejä. 530 00:40:30.760 --> 00:40:35.230 Kaikki tämä kokeiltavissa sitten ja kukkasilla varsinkin pidemmän päälle. 531 00:40:35.230 --> 00:40:37.750 No se on semmoinen tää tekee aika vähän. 532 00:40:37.750 --> 00:40:40.530 Tää vaan niinku tulostaa merkkejä. 533 00:40:40.530 --> 00:40:44.000 Ja nyt vertailun vuoksi tuossa vieressä on toi. 534 00:40:44.000 --> 00:40:49.770 Toi printf. Ja mitä tää taas tekee? 535 00:40:49.770 --> 00:40:56.380 Tää tulostaa tota muotoiltua. Ulostuloa. 536 00:40:56.380 --> 00:41:03.120 Ja ja mikä siinä on nyt se idea sille annetaan nyt ensinnäkin se muotoilumerkkijono 537 00:41:03.120 --> 00:41:09.360 ja sitten 3 pistettä tarkoittaa että voi antaa sitten lisää. 538 00:41:09.360 --> 00:41:15.460 Noita parametreja tai argumentteja niin niin niin sen verran kun tarvitsee 539 00:41:15.460 --> 00:41:19.440 elikkä siitä oli meille se se esimerkki, että. 540 00:41:19.440 --> 00:41:23.100 Että. Että jos haluttiin sinne. 541 00:41:23.100 --> 00:41:25.750 Hei, maailma. 542 00:41:25.750 --> 00:41:33.400 Paras luku on 1 2 3 mutta mä en haluaisi sitä tuohon kirjoittaa vaan näin että. 543 00:41:33.400 --> 00:41:38.510 Että tota voisi aukko täydellisessä olisi tuossa. 544 00:41:38.510 --> 00:41:43.010 Ja nyt mitä tää joutuu aina tekemään tää printf. 545 00:41:43.010 --> 00:41:50.290 Se joutuu käymään läpi tuosta, että mitäs täällä merkkijonossa on iso pikku EI, väli. 546 00:41:50.290 --> 00:41:53.440 Se joutuu käymään ensin läpi ennen kun se mitään niinku voi oikeastaan 547 00:41:53.440 --> 00:41:56.890 niinku. No kuulostaako se niitä saman tien vai ei? 548 00:41:56.890 --> 00:41:59.360 Sillä ei ole väliä, mutta joka tapauksessa joutuu käymään läpi 549 00:41:59.360 --> 00:42:04.110 ja tarkistelemaan, että onko siellä tota prosentti. 550 00:42:04.110 --> 00:42:06.890 Jos on prosentti niin se joutuu tekemään lisää operaatiota. 551 00:42:06.890 --> 00:42:13.490 Se joutuu muotoilemaan siihen kohtaan. Nyt sitten eri eri. 552 00:42:13.490 --> 00:42:19.300 Parametrina tulee tota. Luvun esimerkiksi tuossa prosentti DL. 553 00:42:19.300 --> 00:42:24.690 Elikkä löytyy tietenkin sieltä sieltä spekseistä sitten että että mitä nää. 554 00:42:24.690 --> 00:42:27.260 Nää voi olla sitten nää. 555 00:42:27.260 --> 00:42:32.580 Nää niinku prosentilla ilmaistava eli tuossa on niinku esimerkki kellonajasta. 556 00:42:32.580 --> 00:42:38.410 Tunnit minuutit sekunnit niin niin sitten siellä on tota. 557 00:42:38.410 --> 00:42:41.990 Sitten prosentilla. Muotoilu sille. 558 00:42:41.990 --> 00:42:46.670 Example ja ja sitten tota speksiä silleen, että mitä kaikkea voi olla, mutta 559 00:42:46.670 --> 00:42:51.300 pointti siihen että tää printf tekee oleellisesti enemmän. 560 00:42:51.300 --> 00:42:54.800 Jotain put s. 561 00:42:54.800 --> 00:43:02.110 Ja ja tässä tulostaa tuon rivinvaihdon aina. 562 00:43:02.110 --> 00:43:07.270 Eli nyt esimerkiksi koitetaan ihan niinku. 563 00:43:07.270 --> 00:43:11.750 Kaiken tavoite on se, että päästään kokeilemaan ja nähdään tätä niin kokeillaan kielsin 564 00:43:11.750 --> 00:43:19.310 äsken tällä vivulla– no bildin print eli älä käytä sisäänrakennettua jekkua tän prinsessan 565 00:43:19.310 --> 00:43:24.720 kanssa otetaan se pois se viritys ja katsotaan mitä toi tekee. 566 00:43:24.720 --> 00:43:32.040 Ja ja otetaan sinne GDP ja otetaan bisnesenkeli ja sitten se. 567 00:43:32.040 --> 00:43:38.110 Heippa. Niin nyt siellä on. 568 00:43:38.110 --> 00:43:42.540 Printf koska nyt siinä toi kääntäjä on katsonut läpi myös sen merkkijonon 569 00:43:42.540 --> 00:43:45.520 että nyt siellä on tämmöinen aukko täydennys meneillään eli se tarvitsee 570 00:43:45.520 --> 00:43:49.330 sen prosentin että nyt ei voi. 571 00:43:49.330 --> 00:43:54.110 Niinku tehostaa asioita kutsumalla tuossa putkassa nyt tehtiin printf, niinku 572 00:43:54.110 --> 00:43:59.060 ominais asioita jos se kestää pidempään koska se käy läpi. 573 00:43:59.060 --> 00:44:04.960 Ja tota tietysti aina varmaan hyvä hyvä myös kokeilla että se homma homma tekee niinku 574 00:44:04.960 --> 00:44:08.900 mitä mielikuvamalli oli, koska muuten muuten toi olisi ollut ihan. 575 00:44:08.900 --> 00:44:11.890 Turha vilkaisu tuo siis asenne tuolla? 576 00:44:11.890 --> 00:44:17.100 No katsotaan sitten jos ei siinä olisi sitä aukko täydennystä. 577 00:44:17.100 --> 00:44:19.050 Niin nyt. 578 00:44:19.050 --> 00:44:23.420 Mielikuvamalli olisi että nyt se laittaa tuohon tilalle sen put koska se vaan 579 00:44:23.420 --> 00:44:27.120 heittää merkit joita ei tarvitse tarkistaa että mitä siellä on. 580 00:44:27.120 --> 00:44:31.360 Ja rivinvaihdon. Katsotaan nyt. 581 00:44:31.360 --> 00:44:34.660 Tossa varmaan voi niinku pistää perään vielä tuonne. 582 00:44:34.660 --> 00:44:38.640 Kokeillaan nyt että se teki niinku piti hei maailma paras luku on. 583 00:44:38.640 --> 00:44:40.680 No sitten ei ollut mitään. 584 00:44:40.680 --> 00:44:44.820 Lukua siellä koska äsken just pois niinku koodista ja ja tota näin 585 00:44:44.820 --> 00:44:48.950 on ja nyt mennään katsomaan sillä bussilla sitten. 586 00:44:48.950 --> 00:44:56.480 Että mitä nyt on kääntynyt sinne? Leikkaa aliohjelman. 587 00:44:56.480 --> 00:45:01.660 No nyt siellä on se putkassa, elikkä että se on tajunnut ton ja nyt niinku. 588 00:45:01.660 --> 00:45:06.520 Nyt mä nyt mä oon tonneissa nyt mä oon itse tekemässä kokeilua josta mä en vielä tiedä mitäs 589 00:45:06.520 --> 00:45:11.100 käy nyt sitten näiden speksien valossa jos mä poistan tuolta ton rivinvaihdon tuon lopuksi 590 00:45:11.100 --> 00:45:16.300 mikä on kanssa printf juttuja että jos siellä tulee kenoviivalla on taas sitä mitä print FM 591 00:45:16.300 --> 00:45:19.460 pitää tehdä sen pitää tarkistaa tuolta että onko tuossa keno. 592 00:45:19.460 --> 00:45:25.110 Ja mitä sen jälkeen tulee ja ne on on . Tarvii vaihto. 593 00:45:25.110 --> 00:45:27.230 Niin niin tota. 594 00:45:27.230 --> 00:45:31.510 Nyt otin sen rivinvaihdon pois mun mielikuvamalli perus pieni oletus voisi 595 00:45:31.510 --> 00:45:34.270 olla, että että ei nytkään voi käyttää sitä put ässää. 596 00:45:34.270 --> 00:45:41.590 Miksipä? 597 00:45:41.590 --> 00:45:47.890 Siksi koska nyt siellä put assen spekseissä oli että että sen pitää tulostaa merkkijono ja 598 00:45:47.890 --> 00:45:53.030 sen jälkeen Elikkä nyt se tekisi muuta kuin mitä mä kirjoitin tuohon ohjelmaan. 599 00:45:53.030 --> 00:45:55.650 Elikkä nyt mun niinku oletus olisi että ainakaan tota put ässää 600 00:45:55.650 --> 00:45:57.810 se ei voisi tuohon niinku automaattisesti keksiä. 601 00:45:57.810 --> 00:46:02.690 Äsken se keksi kun oli printf jotain ja ei aukko täydennyksiä, 602 00:46:02.690 --> 00:46:06.110 mutta rivinvaihtomerkki lopussa ja nanna. 603 00:46:06.110 --> 00:46:10.320 Mutta nyt niinku tää tämä speksin valossa, niin ei se nyt saisi. 604 00:46:10.320 --> 00:46:15.300 Automaattisesti tehostaa toimintaa tuolla katsotaan. 605 00:46:15.300 --> 00:46:20.500 Käännetään jotain toimii niinku oletin eli nyt ei rivi vaihtunut vaan suoraan 606 00:46:20.500 --> 00:46:26.300 vaan tuohon niinku tuli tuo kehote OK eli nyt voidaan mennä mennä katsomaan 607 00:46:26.300 --> 00:46:34.700 GDP, llä mitä te teki siis jos sample heippa heippa. 608 00:46:34.700 --> 00:46:38.790 No niin näin se oli eli se ei voinut sinne arpoa sitä put ässää, 609 00:46:38.790 --> 00:46:43.880 koska puut tulostaa energianvaihdon loppuun. 610 00:46:43.880 --> 00:46:48.590 Näin olipa hyvä kysymys mistä päästiin niinku nyt oikeasti tänne koneelle missä niinku alusta 611 00:46:48.590 --> 00:46:53.040 lähtien toki pitäisi olla koska näyttää mallia siitä mitä pitää tehdä eli kokeilla niin 612 00:46:53.040 --> 00:46:58.900 tuli juuri sitä eli eli kokeilua ja speksejä vertaamista koko aika näpeissä tää homma pienen 613 00:46:58.900 --> 00:47:02.220 muutoksen jälkeen ennen kuin pyyhkiytyy ongelmat niin. 614 00:47:02.220 --> 00:47:04.120 Niin sitten. 615 00:47:04.120 --> 00:47:08.720 Nopealla syklillä tuo kokeilu ja vastaako se mielikuvamalli jos haluaisi vielä nopeammin 616 00:47:08.720 --> 00:47:14.310 tuosta niinku niinku tehdä niin niin niin toki sitten sitten varmaan tuosta. 617 00:47:14.310 --> 00:47:16.470 Voisi vastata. 618 00:47:16.470 --> 00:47:19.500 No joo, en lähde nyt tässä äkkiseltään sitä yrittää miten scriptaisin netissä sitten on, 619 00:47:19.500 --> 00:47:24.950 että se aina aina tuo reportterit näyttää siis asetusta tai sitten pyytäisin. 620 00:47:24.950 --> 00:47:30.960 Jo kääntäjä tulostamaan konekieltä ja nähdä sen tuosta suoraan että mitäs nyt tuli. 621 00:47:30.960 --> 00:47:35.050 No niin hyvä. Saatiinko me tähän nyt vastaus? 622 00:47:35.050 --> 00:47:40.920 Joo ja ja ja niin kun toi on ihan kiva juttu että että että printf on on se mitä 623 00:47:40.920 --> 00:47:44.280 me niinku voidaan voidaan käytellä ja sitten kun me vaan tiedetään että sitten 624 00:47:44.280 --> 00:47:50.200 että joo jos tilanne on toi niin niin se arpoo tota. 625 00:47:50.200 --> 00:47:54.430 Siihen tilalle puhut tässä automaattisesti. Kokeillaanpa huvikseni. 626 00:47:54.430 --> 00:47:56.300 Tuostahan tuli nyt se puhu tässä, mutta entä jos siellä 627 00:47:56.300 --> 00:47:59.100 välissä olisi Ja mä luulen että nyt. 628 00:47:59.100 --> 00:48:03.800 Edelleen niin kyllä tässä nyt printf tarvittaisiin varmaankin, koska toi 629 00:48:03.800 --> 00:48:08.320 toi puut ässä ei niinku sitten käy läpi tuota ja saa tonne väliin laittaa 630 00:48:08.320 --> 00:48:12.560 tuommoista hyvin vaihtoa että että kyllä varmaan nyt nyt mielikuvamalli 631 00:48:12.560 --> 00:48:16.060 on nyt tulossa tullut hei maailma! Välilyönti 632 00:48:16.060 --> 00:48:23.980 paras luku on ja Loppuun, mutta nyt se kanssa niin ei se ei se ei se tossakaan saisi. 633 00:48:23.980 --> 00:48:28.120 No niin eli joo näin käy ja sitten ei tässä kauaa kestä 634 00:48:28.120 --> 00:48:33.600 mennä tälläkään lailla sitten asia ja tota. 635 00:48:33.600 --> 00:48:39.320 Tavulla, että niin se täydentää ja heippa ja tabulaattorin täydentää ja. 636 00:48:39.320 --> 00:48:44.920 On on katsottu SOK no niin mielikuvamalli niin ei vastannut sitä mitä tuolla tapahtuu. 637 00:48:44.920 --> 00:48:46.790 Eli OK. 638 00:48:46.790 --> 00:48:49.610 Ilmeisesti tässä tapahtuu nyt sitten vielä jotain muuta. 639 00:48:49.610 --> 00:48:56.630 Eli se ei ole printa juttuja nyt toi toi kenoa ennen käsittely. 640 00:48:56.630 --> 00:49:01.740 Vaan se kääntyi ja itse asiassa tonne lyö tohon kohtaan merkkijonoon. 641 00:49:01.740 --> 00:49:05.020 Janne onko mä väärässä tässä? 642 00:49:05.020 --> 00:49:14.040 Oonko mä oisin merkkijonon joo eli toi keno anna oli itse asiassa tuon sen jälkeen merkkijono 643 00:49:14.040 --> 00:49:19.220 sen takia niin se ei liity printf eikä puhuta s niin täällä toi kenoa anna tohon tulee 644 00:49:19.220 --> 00:49:25.440 sitten hei jos me katsotaan tuolta niinku me katsotaan dis assemblyillä hei niinku 645 00:49:25.440 --> 00:49:30.080 itseamin tutkitaan muistia tutkitaan merkkijonona. 646 00:49:30.080 --> 00:49:36.250 Eli kautta jos ei muistaisi niin niin sitten helppo niinku niin niin niin tuossa. 647 00:49:36.250 --> 00:49:42.070 Voi pyytää kautta niin merkkijonona tutkimaan jotain. 648 00:49:42.070 --> 00:49:45.400 Ja. 649 00:49:45.400 --> 00:49:49.260 No OK mennään, pysähdytään sinne heippaaan, niin sitten meillä 650 00:49:49.260 --> 00:49:53.000 on niinku se tilanne ja ajetaan siihen asti. 651 00:49:53.000 --> 00:49:55.990 No niin nyt pysähdyttiin tänne. 652 00:49:55.990 --> 00:49:59.830 Tänne missä ollaan menossa? 653 00:49:59.830 --> 00:50:06.950 Heippa aliohjelmassa ja ja tota. Tuossa on tuommoinen. 654 00:50:06.950 --> 00:50:11.320 Tuommoinen muistiosoite, jossa varmaan pitäisi olla merkkijono. 655 00:50:11.320 --> 00:50:14.130 Joka on se kyseinen. 656 00:50:14.130 --> 00:50:18.880 400600 ihan kirjoitin tuohon, katsotaan mitä tuosta tulee. 657 00:50:18.880 --> 00:50:23.040 Joo no niin elikkä nyt mä tutkin debugerilla puteliaasti muistia 658 00:50:23.040 --> 00:50:25.450 ja pyysin että näytät tätä muistia merkkijonona. 659 00:50:25.450 --> 00:50:30.540 No nyt ne pukkari siitä vastaavaa että että mä halusin nähdä sieltä sieltä tota 660 00:50:30.540 --> 00:50:36.380 merkkijono nyt se myös tulkaa mulle että siellä on nyt kenon paras luku on jo siellä 661 00:50:36.380 --> 00:50:40.000 taas ei ole kenon annaa koska nyt tuossa merkkijonossa taas ei ole sitä mukana 662 00:50:40.000 --> 00:50:43.580 koska nyt se automaattisesti tehnyt sinne semmoiseen kun sä puhut ässä vaihtaa 663 00:50:43.580 --> 00:50:48.520 sen sinne ja nyt me voidaan katsoa tästä uteliaasti niin ei ei tota merkkijonona 664 00:50:48.520 --> 00:50:51.580 vaan tavuina ja vaikka montako tavua. 665 00:50:51.580 --> 00:50:55.930 Meille riittäisi tuosta niin. Oho. 666 00:50:55.930 --> 00:51:01.370 En muistanut. Muistanut helpx mä halusin näyttää. 667 00:51:01.370 --> 00:51:06.870 Mitä hexsana vaikka ja ja sitten tabu ja joo eli oikea formaatti 668 00:51:06.870 --> 00:51:13.690 mitä halusin oli tutki ja 20 kappaletta ja hexa lukuina ja sitten 669 00:51:13.690 --> 00:51:18.340 niinku tavuja tommoisesta osoitteesta alkaen. 670 00:51:18.340 --> 00:51:21.530 Tossa. Äsken nähtiin se. 671 00:51:21.530 --> 00:51:30.240 Merkkijonona. HEI, välilyönti. 672 00:51:30.240 --> 00:51:36.740 MAA ilma. ! 673 00:51:36.740 --> 00:51:39.140 . 674 00:51:39.140 --> 00:51:51.120 Todellakin on tietokoneen muistissa osoitteessa 84006089 ABCD 675 00:51:51.120 --> 00:51:58.910 siellä on eikä ne olen hyvin vaihtomerkki. 9 a. 676 00:51:58.910 --> 00:52:03.150 Tuommoisessa osoitteessa merkkiin on siitä eteenpäin voidaan katsoa. 677 00:52:03.150 --> 00:52:06.790 Jo osin on hyvin vaihto ja sitten jotain voidaan katsoa 678 00:52:06.790 --> 00:52:13.230 tota hexana tajua mikä siinä on. Voidaan pyytää. 679 00:52:13.230 --> 00:52:17.640 Formaatti ja sitten kertakaikkisesti katsoo mitä muistissa on jossain kohti. 680 00:52:17.640 --> 00:52:23.660 Mitä siellä on tuon merkkijonon jälkeen sitten? 681 00:52:23.660 --> 00:52:28.470 Katsotaan 2 merkkijonoa osoitteesta. Tuolta alkaen. 682 00:52:28.470 --> 00:52:32.760 No ei siellä oikeasti ole 2 merkkijonoa mutta tota. 683 00:52:32.760 --> 00:52:36.210 Tämä merkkijono. Tehdä mittainen ja. 684 00:52:36.210 --> 00:52:39.570 Sitten. Siellä paikkeilla. 685 00:52:39.570 --> 00:52:43.910 Siinä pitää tulla se nolla tavu. Tutkitaanpa uteliaasti. 686 00:52:43.910 --> 00:52:51.920 9 tavua joka olisi tuolla yks, d kohdassa siellä on nolla edellisessä 687 00:52:51.920 --> 00:52:56.540 sielläkin on nolla mikä nolla se on, niin se kuuluu oikeasti vaan tuohon merkkijonoon, 688 00:52:56.540 --> 00:53:02.120 jonka viimeinen varsinaisen merkki on 8 6 ja se on tuo pikku american act 689 00:53:02.120 --> 00:53:07.870 asti standardissa ja UTF 8 korjatussa unicode. 690 00:53:07.870 --> 00:53:10.900 Ja se on 6 ja sen jälkeen tuon merkin on. 691 00:53:10.900 --> 00:53:14.890 On ohi ja siinä pitää olla vielä nollaisella muistissa. 692 00:53:14.890 --> 00:53:19.590 Sen jälkeen siellä muistissa on jotain, mikä ei liity tuohon tutkittavaan asiaan. 693 00:53:19.590 --> 00:53:21.390 Jotain siellä on selkeästi. 694 00:53:21.390 --> 00:53:26.530 Joo siellä sattuu olemaan nolla ja sitten jos me pyydängeria näyttämään mikä se on 695 00:53:26.530 --> 00:53:31.100 merkkijonon niin se on tyhjä merkkijono kun siinä on vaan se nolla. 696 00:53:31.100 --> 00:53:37.270 Näin ei mystiikkaa. Vaan kädentaitoja, joilla me voidaan. 697 00:53:37.270 --> 00:53:42.570 Aina niinku tutkija selvittää mistä joku kimurantti ongelma johtuu niin. 698 00:53:42.570 --> 00:53:56.360 Sinne. Joo debugrillä mitä tunteita tämä herättää? 699 00:53:56.360 --> 00:54:02.240 Vaikka jotain muistipaikkoja ja että joku voi tehdä jo. 700 00:54:02.240 --> 00:54:09.790 Investoida sinne jotain koodia ja tai se tätä kautta tajua millä joo sen löysit aivan sovelluskohteen 701 00:54:09.790 --> 00:54:16.260 näille asioille eli se tietoturva eli eli nyt nämä injektion hyökkäykset niin tota kun vielä 702 00:54:16.260 --> 00:54:20.470 on näitä järjestelmiä käytössä ja pelittää tällä periaatteella että sulla on merkkijono jonka 703 00:54:20.470 --> 00:54:28.860 pitää päättää 704 00:54:28.860 --> 00:54:31.180 nolla ja sitten tota mitä se joku onnistui tekemään sillä lailla että että tota siinä ei ollutkaan nolla vaan jotain muuta vielä lisää. 705 00:54:31.180 --> 00:54:35.790 Ehkä sitten niinku. Niinku pahantahtoista syötettä. 706 00:54:35.790 --> 00:54:39.830 Aijai aijai joo. 707 00:54:39.830 --> 00:54:43.430 Ja ja sitten loppujen lopuksi kun se koneisto on niinku näin näin pirun 708 00:54:43.430 --> 00:54:46.740 yksinkertainen että siellä on pötkössä tavuja ja. 709 00:54:46.740 --> 00:54:50.630 Se on se kaikki osa niistä on suoritettavaa koodia. 710 00:54:50.630 --> 00:54:53.640 Osa niistä on merkkijonoja. Ei hittolainen. 711 00:54:53.640 --> 00:54:56.760 Jos joku on päässyt syöttämään sinne merkkijonoon, joka on sitten niinku mennyt 712 00:54:56.760 --> 00:55:01.380 tuosta alueesta vielä yli sinne suoritettavaan ohjelmakoodin puolelle ja siellä 713 00:55:01.380 --> 00:55:06.490 on ollut merkit valittu sopivasti, että ne on sitten näitä. 714 00:55:06.490 --> 00:55:10.560 Koneellisia julkisesta spekseistä löytyviä tavuja. 715 00:55:10.560 --> 00:55:15.740 Niin sitten se ohjelma sen jälkeen tekee ihan mitä se hyökkääjä halusi. 716 00:55:15.740 --> 00:55:20.350 No sepä sinikka mä annoin avut sinne suoritettavan suoritettavan koodin puoleen. 717 00:55:20.350 --> 00:55:23.670 Tää kurssi ei ole tietoturvan kurssi, mutta tää on ehdoton ensitieto niille 718 00:55:23.670 --> 00:55:27.400 koska sitten me lähdetään katsomaan hyökkäämään täällä vekottimia katsomaan 719 00:55:27.400 --> 00:55:29.370 GDP, llä, että missä tässä ohjelmassa on aukko. 720 00:55:29.370 --> 00:55:34.380 Aina me nähdään toi discuss semmoinen sitä ei voi piilottaa. 721 00:55:34.380 --> 00:55:36.540 Järjestelmä on jossain käytössä. 722 00:55:36.540 --> 00:55:40.520 Voidaan ja se hyökkääjä voi takaisin mallinnuksella selvittää, että 723 00:55:40.520 --> 00:55:47.650 missä se aukko paikka on, jos mutta semmoinen siellä on. 724 00:55:47.650 --> 00:55:53.250 Joo. Vau nyt ollaan suomessa. 725 00:55:53.250 --> 00:55:55.210 Nyt ollaan saaneessa. 726 00:55:55.210 --> 00:56:00.380 Ai jee no niin, tästä tulee erittäin hyvä aihepiirivideo joka vielä niinku jatkuu eli eli 727 00:56:00.380 --> 00:56:06.690 nyt saatiin varmaan vastaus tähän ja sitten vähän johonkin muuhunkin jo vielä. 728 00:56:06.690 --> 00:56:11.390 Ja toinen mihin tietysti tätä voi sitten sitten tota tätä kaikkea ymmärrystä 729 00:56:11.390 --> 00:56:15.050 voi voi käyttää niin on vaikka ne hauskat harrastukset jossa sitten pienennetään 730 00:56:15.050 --> 00:56:17.110 sitä koodia mahdollisimman pieneksi. 731 00:56:17.110 --> 00:56:21.530 Tehdään se niinku sitten tota mä vilautan harrastusta se aina vääjäämättä tulee 732 00:56:21.530 --> 00:56:25.400 tähän elikkä niinku mä mä näytän miten mä nyt esimerkiksi oon oon tehnyt tehnyt 733 00:56:25.400 --> 00:56:32.800 jonkun omasta mielestä siihen asti maailman hienoimman tota. 734 00:56:32.800 --> 00:56:36.320 Linux. Binääri. 735 00:56:36.320 --> 00:56:39.660 Taas diileri oli sen sen tuotoksen nimi ja sitten tota. 736 00:56:39.660 --> 00:56:44.360 Toivottavasti mulla on ne koodit jossa jossain järkevästi saatavilla. 737 00:56:44.360 --> 00:56:51.680 Saatavilla. 738 00:56:51.680 --> 00:56:57.170 Joo hetki piti etsiä että missä ne koodit oli, koska täällä demoninen keskusteluryhmässä mä 739 00:56:57.170 --> 00:57:01.190 oon laittanut tänne että että lähdekoodit on oudossa paikassa mutta saatavilla. 740 00:57:01.190 --> 00:57:03.380 Tää on niinkin oudossa paikassa kuin meidän ikivanhassa jo 741 00:57:03.380 --> 00:57:06.200 poistuneensa järjestelmässä kun juuso orsi. 742 00:57:06.200 --> 00:57:10.670 Mutta mutta tuosta mä tota pääsin sinne. 743 00:57:10.670 --> 00:57:14.710 Pääsin sinne tota niinku näyttämään että että mitä hulluuksia on 744 00:57:14.710 --> 00:57:18.440 tullut tullut harjoiteltua joskus niin tuossa on. 745 00:57:18.440 --> 00:57:22.760 Sen voi tuolta sitten kanssa diileri on on tuotoksen nimiä ja se löytyy sitten 746 00:57:22.760 --> 00:57:27.520 video exporttena youtubesta ynnä muuta en näytä sitä tässä, koska siitä muodostuisi 747 00:57:27.520 --> 00:57:31.080 kopioi tähän videolle ja se on täysi. No no. 748 00:57:31.080 --> 00:57:37.910 Mutta joo mä oon tehnyt näin tota ihan. Ja täällä. 749 00:57:37.910 --> 00:57:43.750 Näsman nimisellä tota assembler eli konekieli kääntäjä ole tehnyt. 750 00:57:43.750 --> 00:57:47.430 Tuossa on niinku silleen, että tuon lähdekoodin voisi kääntää tuolla lailla 751 00:57:47.430 --> 00:57:50.290 ja ja tota seitsemänneksi sijoituin kaksituhattakuusitoista. 752 00:57:50.290 --> 00:57:56.260 Voi että aika rientää. Tota tässä alussa tulee niinku kyseisen. 753 00:57:56.260 --> 00:58:01.830 Kääntäjän syntaksilla vähän määritelmiä sitten tuosta lähtee niin tota. 754 00:58:01.830 --> 00:58:07.930 Täältä lähtee silleen, että olkoon meidän tuo käännetyn tulostiedot ensimmäinen tavu 755 00:58:07.930 --> 00:58:13.210 7 ja sitten äskenhän ELF eli speksin mukainen binääri tiedosto. 756 00:58:13.210 --> 00:58:17.250 Mä rupean tässä rakentelemaan ja sitten tuntiin speksin muutamat tutoriaalit 757 00:58:17.250 --> 00:58:21.550 käyneenä niin mä väärin käytän sitä nätisti täällä on huijattu ja koko 758 00:58:21.550 --> 00:58:25.230 ajan make leap väitetään tota ohjelmaa. 759 00:58:25.230 --> 00:58:30.910 Tota pituus on on tota pitempi se oikeasti onkaan koska jostain syystä linux 760 00:58:30.910 --> 00:58:34.840 suostuu suorittamaan vaikka vaikka nää tiedot olisi väärin. 761 00:58:34.840 --> 00:58:38.090 Ja tuossa itse, että tää lopulta vielä pakataan zip pakettiin ei ole sinne on paljon 762 00:58:38.090 --> 00:58:42.710 nollia niin ne pakkautuu pienempään vielä ja tota tää tää hoituu silleen että tää 763 00:58:42.710 --> 00:58:48.740 käsipelillä merkki merkiltä tehty tänne tää ja tää se oli silloin kun en vielä 764 00:58:48.740 --> 00:58:52.630 takaisin mallintanut sen toisen kaverin temppua niin tässä joutuu sitten selväkielisinä 765 00:58:52.630 --> 00:58:56.400 ja nää kirjastot ja aliohjelma animet laittamaan ja tässä tässä 766 00:58:56.400 --> 00:58:58.840 mä tuskailin paljon kuin siihen yksi kiloon. 767 00:58:58.840 --> 00:59:01.300 Ei meinaa että selväkielistä tekstiä paljon mahtua ja 768 00:59:01.300 --> 00:59:04.710 tääkään ei pakkaudu hirmu hyvin niin. Niin niin. 769 00:59:04.710 --> 00:59:08.970 Tää oli silloinen ongelma ja tuossa on sitten open GLC eriä merkkeinä 770 00:59:08.970 --> 00:59:14.410 vaan pötkössä ja siellä se on ja tota tää nyt käsipelillä tehtyä optimointia 771 00:59:14.410 --> 00:59:16.990 siis viimeisen päälle koko optimointia. 772 00:59:16.990 --> 00:59:21.550 Elikkä nyt se aiheeseen liittyvä kysymys oli, että että vaikuttaako esimerkiksi optimointi 773 00:59:21.550 --> 00:59:27.690 binääri tiedoston kokoon, niin joo, automaattisesti kääntäjä osaa tehdä koko optimointia 774 00:59:27.690 --> 00:59:33.650 ja ja me voidaan kokeilla näin pienessä hei maailma esimerkissä veikkaan että että koko 775 00:59:33.650 --> 00:59:37.120 optimoinnin vaikutus on aika pieni, mutta katsotaan silti. 776 00:59:37.120 --> 00:59:42.090 Eli l– pitkässä formaatissa poistetaan sieltä tuo vanha a. 777 00:59:42.090 --> 00:59:44.960 Autti. Kiinnostavaa. 778 00:59:44.960 --> 00:59:49.770 Nyt on kääntää tätä ohjelmaa ja ehkä ei välttämättä suorittaa sitä 779 00:59:49.770 --> 00:59:54.370 vaan katsoa nimenomaan vaikka noi tiedostojen pituudet. 780 00:59:54.370 --> 00:59:59.660 Eli nyt hei maailma suoritti suoritettava koodi on 9500 kahdeksankymmentäneljä 781 00:59:59.660 --> 01:00:02.640 tavua pitkä, kun siinä ei ole optimointia. 782 01:00:02.640 --> 01:00:08.640 Me voidaan kokeilla tuosta, että optimoi suorituskykyä pikkuisen. 783 01:00:08.640 --> 01:00:15.120 Joo suoritus optimaanit joskus aiheuttaa sitä, että joku sama asia on nopeampaa 784 01:00:15.120 --> 01:00:19.940 tehdä useamman käskyn niinku peräkkäisenä rimpsun. 785 01:00:19.940 --> 01:00:22.500 Eli nyt sitten suorituskyky optimointi saattaa johtaa siihen, 786 01:00:22.500 --> 01:00:27.300 että sun ohjelmatiedot onkin pidempi. 787 01:00:27.300 --> 01:00:31.470 Kokeillaan kakkonen, mutta sen pitäisi toimia nopeammin, koska ne temput on 788 01:00:31.470 --> 01:00:36.320 sellaisia että se vaihtoehtoinen käskysarja syystä tai toisesta johtuen siitä 789 01:00:36.320 --> 01:00:38.800 laitteistosta on sille laitteistolle tehokkaampaa. 790 01:00:38.800 --> 01:00:42.400 Ne olisi reaalimaailman dokumentaatiossa on myös sitten omat osionsa, 791 01:00:42.400 --> 01:00:46.720 jotka kertoo optimoija että kuinka sä voit hyödyntää meidän laitteen 792 01:00:46.720 --> 01:00:49.760 toiminta ja tehokkaan kohden tekemiseksi. 793 01:00:49.760 --> 01:00:56.270 Toi kakkonen teki pikkuisen vielä pitemmän, eli ilmeisesti se teki lisää temppuja. 794 01:00:56.270 --> 01:00:58.760 Jotka jotka tota. 795 01:00:58.760 --> 01:01:01.660 Nähtävästi pidentänyt kakkosen ja kolmosen välillä. 796 01:01:01.660 --> 01:01:03.460 Ei edes ollut eroa. 797 01:01:03.460 --> 01:01:07.220 Tuossa pituudessa voi olla sisällössäero, koska tota sen pitäisi olla vielä 798 01:01:07.220 --> 01:01:11.880 tehokkaampaa suorituskykyä, optimointia tämmöisessä keississä. 799 01:01:11.880 --> 01:01:17.350 On vaan hei maailma niin niin yksi aliohjelma kutsulla, niin ei, ei ei ei tässä vielä näy kovin 800 01:01:17.350 --> 01:01:22.130 paljon ne ne erot, mutta meillä on sitten vielä yks optimointimahdollisuus. 801 01:01:22.130 --> 01:01:27.830 Se on tää pikku eli optimaalisesti saa eze elikkä nyt sen pitäisi yrittää ihan 802 01:01:27.830 --> 01:01:33.130 vaihtoehtoisia käsky, jotka olisi kooltaan mahdollisimman pieniä. 803 01:01:33.130 --> 01:01:36.810 No se ei nyt ihan tässä tässä. 804 01:01:36.810 --> 01:01:40.810 Pikku esimerkissä niin se no syystä tai toisesta jopa niinku pidempi. 805 01:01:40.810 --> 01:01:44.710 Nyt tota ohjelmatiedot on kokoa tässä, mutta nää on vaan automaattisia 806 01:01:44.710 --> 01:01:47.610 temppuja joita se niinku melko tyhmästi tekee. 807 01:01:47.610 --> 01:01:53.380 Että että vaikea sanoa jos mikrotasolla katsottaisiin mitä toi koko optimointi teki. 808 01:01:53.380 --> 01:01:59.800 Ja ja me entäs sitten sinne sinne tota DV, llä katselee ja ja vaikka 809 01:01:59.800 --> 01:02:03.860 niinku nyt me kiinnostaa ehkä ne tavutkin koska niitä tavujen määrää 810 01:02:03.860 --> 01:02:06.900 se koko optimointi pyrkii niinku vähentää. 811 01:02:06.900 --> 01:02:10.000 Niin onhan tuo nyt jo aika paljon pienempi noin mikrotasolla, että meillä 812 01:02:10.000 --> 01:02:14.720 äsken kun me nähtiin tässä videolla niin optimoimattoman koodin pitkä rimpsu 813 01:02:14.720 --> 01:02:18.430 ja nyt meillä on koko optimoitu rimpsu joka tota. 814 01:02:18.430 --> 01:02:25.420 Itse asiassa tää on todennut sen, että mä koodin kirjoittanut aliohjelmakutsu. 815 01:02:25.420 --> 01:02:29.860 Että se on todennut. Että. 816 01:02:29.860 --> 01:02:32.120 Tokkopa tuota toimintaa. 817 01:02:32.120 --> 01:02:37.000 Ei kun on se sinne koulu on siinä koulussa eli OK sitä sitä se ei ole sieltä 818 01:02:37.000 --> 01:02:41.940 todennut että ettei tarvitsisi tehdä sitä heippa paljoa mutta se tuossa mutta 819 01:02:41.940 --> 01:02:46.560 se on todennut että tähän ei tarvinnut rakennella mitään pino kehyksiä eli 820 01:02:46.560 --> 01:02:50.100 eli sieltä on jätetty pois pois niinku juttuja. 821 01:02:50.100 --> 01:02:53.980 Eli ja sitten katsotaan se heikko nyt tähän olisi niinku 822 01:02:53.980 --> 01:02:56.860 tän optimoinnin kannalta tästä olisi. 823 01:02:56.860 --> 01:03:01.500 Jos tää kuuluisi tän kurssin aihepiiriin mitä se ei liity, niin tästä olisi hyvä tehdä aihepiirivideo 824 01:03:01.500 --> 01:03:06.360 tästä lisää tästä optimoinnista ja katsoo joku semmoinen esimerkki missä sillä on niinku selkeä 825 01:03:06.360 --> 01:03:10.620 niinku vaikutus nyt tää vaikuttaa olevan melko mikrotason. 826 01:03:10.620 --> 01:03:15.770 Vaikutuksia tässä lähinnä liittyen siihen, että tota pinokehystä tässä nyt ei niinku. 827 01:03:15.770 --> 01:03:19.410 Juuri tehdä, koska tässä ei tehdä paikallisia muuttujia, joita varten se tarvitsee. 828 01:03:19.410 --> 01:03:22.100 Ja me palataan tietysti siihen, että tällä kurssilla laitetaan 829 01:03:22.100 --> 01:03:25.270 se nolla, jotta me nähdään nää ilmiöt. 830 01:03:25.270 --> 01:03:28.890 Joita se kyllä piilottaa sekä suorituskyky että koko syistä. 831 01:03:28.890 --> 01:03:32.930 Se automaattinen optimointi. Ja nyt sitten. 832 01:03:32.930 --> 01:03:35.490 Kun me harrastellaan vielä käsipelillä, niin tehdään törkeitä 833 01:03:35.490 --> 01:03:39.410 temppuja joita jotka ei ole speksin mukaisia. 834 01:03:39.410 --> 01:03:47.050 Eli esimerkiksi tässä tota mun mun niinku tää transfer tuotos niin niin tota täähän. 835 01:03:47.050 --> 01:03:51.080 Kun kun tää kutsuu jotain saliohjelmaa joka joka tota. 836 01:03:51.080 --> 01:03:55.540 Abin eli application winnerin interfacen mukaan, joka on tietysti sama kuin tällä 837 01:03:55.540 --> 01:04:00.190 kurssillakin käydään niin tota se se tota täällä täällä tota. 838 01:04:00.190 --> 01:04:04.420 Kutsumalla puolella pitäisi hoitaa menokehyksen vapautus kolmekymmentäkaksi 839 01:04:04.420 --> 01:04:06.390 biisissä formaatissa, mutta sitä ei tehdä täällä. 840 01:04:06.390 --> 01:04:10.840 Elikkä tää rakentelee pino kehyksiä eikä koskaan vapautta ole niitä elintään vuotaa 841 01:04:10.840 --> 01:04:16.930 muistia, niin ei tuo monta kertaa sekunnissa kun onnistuu, koska mä en tarvitse sinne 842 01:04:16.930 --> 01:04:21.950 sitä käskyä joka sen tekisi ja nyt tavoitteena oli tehdä audiovisuaalinen tuotos joka 843 01:04:21.950 --> 01:04:27.850 näytetään, se päättyy ja sitten äänestetään kellä oli siistein että että että tietysti 844 01:04:27.850 --> 01:04:32.440 sitten on on hauska ja sitten on tietysti kaikenlaista kaikenlaista muutakin muutakin 845 01:04:32.440 --> 01:04:34.630 temppua täällä on tehty, mutta niinku. 846 01:04:34.630 --> 01:04:38.470 Ja törkeitä temppuja nimenomaan. 847 01:04:38.470 --> 01:04:42.190 Joo, joita siis automaattinen optimointi ei suostu tekemään, koska silloin 848 01:04:42.190 --> 01:04:49.220 mennään speksien ulkopuolelle ja sitten sitten tota. 849 01:04:49.220 --> 01:04:51.340 Nyt. 850 01:04:51.340 --> 01:04:56.350 Optimointi ilman muuta vaikuttaa tilanteesta riippuen sen kokoon ja sitten suorituskykyyn 851 01:04:56.350 --> 01:05:01.460 eli nopeuteen ja nää voi olla joskus ristiriitaisia tavoitteita keskenään. 852 01:05:01.460 --> 01:05:05.920 Onko joskus erityisesti tarpeen kieltää optimointia niin? 853 01:05:05.920 --> 01:05:12.680 Juuri nyt tässä ja tänään on hyvä syy. Oppimisen. 854 01:05:12.680 --> 01:05:22.490 Avuksi pysyi selkeimpänä nuo ja sitten. Tota. 855 01:05:22.490 --> 01:05:27.710 Jos optimointi. Näyttää aiheuttavan. 856 01:05:27.710 --> 01:05:33.100 Jonkun jonkun. Toiminnallisen ongelma. 857 01:05:33.100 --> 01:05:37.260 Niin ne on varmaan syytä kokeilla kääntää ilman optimointia ja ja sitten tota 858 01:05:37.260 --> 01:05:40.460 katsoo että OK tuossa se toimii niin mä pyydän optimoinnin päälle. 859 01:05:40.460 --> 01:05:46.490 Se ei toiminut. Mikä on ero? 860 01:05:46.490 --> 01:05:51.120 Ja ja tota sieltä nyt voi löytyä vaikka bugi käänteistä. 861 01:05:51.120 --> 01:05:55.110 Ja kun mä unohtanut jotain kun tehnyt jonkun jonkun hienon optimointi automatiikan, 862 01:05:55.110 --> 01:05:57.880 jonka pitäisi olla käskysarja joka tekee saman jutun. 863 01:05:57.880 --> 01:06:03.500 Mitä se niinku toinen? Mutta sitten ei ihan teekään sitä. 864 01:06:03.500 --> 01:06:07.860 Koska? Jotain vaan unohtunutta. 865 01:06:07.860 --> 01:06:14.310 Että että tota. Tää on varmaan niinku toinen toinen syy. 866 01:06:14.310 --> 01:06:19.940 Sieltä optimointi. 867 01:06:19.940 --> 01:06:24.580 Ja ja tota aina aina jos siinä käyttötarkoituksessa niinku tarvitaan 868 01:06:24.580 --> 01:06:28.950 se, että yksi riviä vastaan yksi pätkä. 869 01:06:28.950 --> 01:06:32.250 Sitä sitä käännettyä koodia, koska nyt mä optimoinnin perustuu 870 01:06:32.250 --> 01:06:35.630 joskus myös siihen, että nää menee lomittain. 871 01:06:35.630 --> 01:06:39.890 Suorituskykyä tulee siitä, että siinä tapahtuu useamman gusin rivin asioita 872 01:06:39.890 --> 01:06:43.650 vähän niinku vuorotellen niinku niinku samaan aikaan. 873 01:06:43.650 --> 01:06:48.090 Jos niillä ei ole vaikutusta sinänsä toistensa niinku lopputulemaan niin joskus 874 01:06:48.090 --> 01:06:53.920 on tehokkaampaa lomittaa niin se kivasti niitä käskyjä. 875 01:06:53.920 --> 01:06:58.910 Joka täytyy sitten estää niinku. Näkemästä. 876 01:06:58.910 --> 01:07:04.450 Niinku sitä toiminnallista yhteyttä lähdekoodin riviin ja sitten ton. 877 01:07:04.450 --> 01:07:07.110 Koneellisen reissun välillä. 878 01:07:07.110 --> 01:07:12.530 No niin oltiin zonessa vielä niinku viimeiset täällä. 879 01:07:12.530 --> 01:07:14.430 Eturivissä istuu. 880 01:07:14.430 --> 01:07:19.700 Katsotaan saadaanko me vielä lisää tässä nyt somessa aikaan. 881 01:07:19.700 --> 01:07:24.570 No niin nyt vaikutti siltä, että että tämä studioyleisö tuota olisi halunnut 882 01:07:24.570 --> 01:07:29.220 jatkaa tätä niinku loputtomiin, mikä tulikin todettua tuossa jo, että niinku 883 01:07:29.220 --> 01:07:31.830 että päätyy asti jos jatkettaisiin vähän. 884 01:07:31.830 --> 01:07:36.950 Ensin etappina oltaisi tämän kurssin asioiden niinku lopussa mihin me mennään kyllä eikä muutenkin 885 01:07:36.950 --> 01:07:41.240 ja sitten niinku alkaisi seuraava kurssi vaikka siitä tietoturva aiheesta. 886 01:07:41.240 --> 01:07:44.810 Etappi sen jälkeen sitten jatkokurssille ja opinnäytteistä jossain 887 01:07:44.810 --> 01:07:48.280 sitten niinku töissä muutamia vuosikymmeniä, että varsinainen päätyi 888 01:07:48.280 --> 01:07:50.590 tälle aihepiiriille tulee päässyt eläkkeelle. 889 01:07:50.590 --> 01:07:57.880 Jos et halua jatkaa harrastelu vaiheen parissa eli eli niinku niinku tota. 890 01:07:57.880 --> 01:08:03.660 Tältä päivältä päätettiin, että nyt on aika mennä lounaalle reflektoida edellistä 891 01:08:03.660 --> 01:08:06.440 ja myös oli sitten niinku kuulemma saatiin hyvin valoa. 892 01:08:06.440 --> 01:08:11.780 Esimerkiksi nyt semmoisia mitkä on ollut niinku sanahelinä ja tähän asti niinku injektiohyökkäys 893 01:08:11.780 --> 01:08:15.710 niin tässä nyt nähdään niinku ne keinot joilla on niinku. 894 01:08:15.710 --> 01:08:20.370 Pääset niinku varmistumaan siitä, kuinka nää niinku esimerkiksi voi pelittää. 895 01:08:20.370 --> 01:08:23.430 Joo. Mahtavaa. 896 01:08:23.430 --> 01:08:26.410 Nyt oltiin sanoissa ja tää nyt kotikatsomossa niin ei muuta 897 01:08:26.410 --> 01:08:30.380 kun nyt lähde kokeilemaan näitä juttuja tuota. 898 01:08:30.380 --> 01:08:33.530 Katsomaan niitä katsomaan niitä tota. 899 01:08:33.530 --> 01:08:38.590 Ihmeellisyyksiä mitään herää että mitä mitä voi kirjoittaa ja miten se miten 900 01:08:38.590 --> 01:08:42.700 se tota kääntäjä sitten mahdollisesti niistä varoittelee. 901 01:08:42.700 --> 01:08:45.970 Varoittelee kyllä, jos sulla on reunassa olevaa. 902 01:08:45.970 --> 01:08:47.770 Sitten. 903 01:08:47.770 --> 01:08:51.580 Että on luvannut hei jes tsemppiä innokkaaseen tekemiseen 904 01:08:51.580 --> 01:08:54.470 jatketaan muiden aihepiirivideoiden parissa. 905 01:08:54.470 --> 01:08:57.350 Tänään täällä mennään lounaalle. 906 01:08:57.350 --> 01:08:59.300 Joo kiitos mielenkiinnosta kotikatsomossa.