Hirdetés
- Kormányok / autós szimulátorok topikja
- Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)
- Apple MacBook
- Amlogic S905, S912 processzoros készülékek
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen házat vegyek?
- TCL LCD és LED TV-k
- OLED TV topic
- Rémisztő árakkal szembesülnek a notebookgyártók az új mobil platformoknál
-
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!
- BestBuy topik
- Tarr Kft. kábeltv, internet, telefon
- Postal: Bullet Paradise - A játék amit bejelentettek, majd el is kaszáltak
- Lexus, Toyota topik
- Trollok komolyan
- Jövedelem
- Kormányok / autós szimulátorok topikja
- Xiaomi 15T - reakció nélkül nincs egyensúly
- CADA, Polymobil, és más építőkockák
- World of Tanks - OFF topic
- További aktív témák...
- Olcsó számítógép PC - Játékra is! I7 4770 / 16GB DDR3 / GTX 1650 4GB / 256 SSD + 1TB HDD
- Telefon felváráslás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- HP 150W töltők (19.5V 7.7A) kis kék, kerek, 4.5x3.0mm
- 188 - Lenovo LOQ (15IRX10) - Intel Core i5-13450HX, RTX 5060
- GYÖNYÖRŰ iPhone SE 2020 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3920
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: ATW Internet Kft.
Város: Budapest

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 


