- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen billentyűzetet vegyek?
- Megjöttek a be quiet! Pure Loop 3 sorozatú kompakt AIO-i
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Milyen videókártyát?
- RAM topik
- Notebook hibák
- Projektor topic
- Apple MacBook
- Azonnali fotós kérdések órája
-
PROHARDVER!
Új hozzászólás Aktív témák
-
kovisoft
őstag
válasz
bandi0000 #11473 üzenetére
Nem mindegy, hogy char-ként vagy short-ként, stb. adod össze a számokat, mert mindegyiknek más a tartománya, ami fölött túlcsordul a művelet. Byte-osan összeadva pl. a 250+10=4 lesz, mert max. 255-öt tudsz tárolni egy byte-on, de short-ként elfér ugyanez az összeg. Az sem mindegy, hogy hány elemű tömböket tudsz így összeadni, mert byte-ból egyszerre 8-at, de short-ból csak 4-et.
Az mm0-ban ugyanúgy tömbként lesz tárolva az eredmény, mint amilyen a bemenő operandus volt, innen ugyanúgy egy movq-val tudod kiírni memóriába (mondjuk egy C tömbbe).
-
válasz
bandi0000 #11473 üzenetére
"mind1 hogy ha számokat akarok összeadni/kivonni/szorozni/osztani, akkor char-vagy int ként tárolom és adom össze?"
Egyáltalán nem és ez az egész MMX-es (illetve SIMD-s) bohóckodás lényege: hogy itt nem egy-egy számmal csinálsz valamit, hanem egyszerre sok számmal csinálod ugyanazt - jelen esetben egy utasítással összeadsz nyolc számpárt.
És itt jön elő az, hogy ezt a sok adatot hogyan adod át a processzornak - ha egyszer a paddb utasításnak csak két operandusa van, akkor hogy a csudába adsz meg neki 16 számot? Úgy, hogy azt mondod neki, hogy a (64 bites, vagyis 8 byte-os) operandus minden egyes byte-ját kezelje külön számként.
"ne haragudj, hogy ennyire értetlen vagyok, de alapvetően c/c++/c# vonalon mozgok"
Nem haragszok, de az teljesen biztos, hogy C vonalon egyáltalán nem mozogsz
A C gyakorlatilag egy hordozható assembler nyelv, ott létfontosságú, hogy tudd, hogy hogyan néznek ki az adataid a memóriában, márpedig nálad ez a rész láthatóan kimaradt, mert a C#-ban tök jól el lehet lenn úgy is, hogy ha ezt a részt egy "magic happens" felirat fedi el
A char nem azt jelenti, hogy az a típus karakter lenne (azt meg aztán végképp nem, hogy abban ASCII reprezentációban lenne bármi is), hanem csak azt, hogy az egy 8 bites érték (ráadásul a C standard sajnos azt sem specifikálja, hogy most signed vagy unsigned - a PADDB meg ilyen szempontból semleges, az általa adott eredmény akkor is jó lesz ha signed, meg akkor is, ha unsigned módon akarod értelmezni az eredményt - egészen addig, amíg nincs túlcsordulás).
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Gamer egerek és billentyűzetek kitűnő árakon! Most extra 10% kedvezmény!
- Bomba ár! Dell Latitude E7440 - i5-4GEN I 8GB I 500GB I 14" HD I HDMI I Cam I W10 I Gari!
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB DDR5 RTX 5060 8GB GAMER PC termékbeszámítással
- 139 - Lenovo Yoga Pro 7 (14IMH9) - Intel Core Ultra 9 185H, RTX 4060
- Bomba ár! Dell Latitude 5401 - i5-9400H I 8GB I 256SSD I 14" FHD I HDMI I Cam I W11 I Gari!
Állásajánlatok
Cég: FOTC
Város: Budapest