Új hozzászólás Aktív témák
-
Szirty
őstag
válasz
kis.balage
#772
üzenetére
Helló kis.balage!
"PLC ciklusonként kellene 120 doubleword-öt 1 doubleword-el arréb mozgatnom (FIFO). Tudtok erre valami elegáns megoldást vagy marad a 120-szor LOAD-TRANSFER?"
Az is egy megoldás, de munkaigényes beírni

Két másik módszer:
1. cikust kell szervezni, ami szépen elketyeg 120-ig. A dolog hátránya, hogy ismerni kell az STL programozást és tisztában kell lenni az indirekt címzésekkel.
Egy ehhez hasonló megoldás van ebben az írásban is.2. 119 duplaszót átmásolsz egy blockmove utasítással egy 119 dw elemű pufferbe, majd egy duplaszóval arrébbra visszamásolod. Előnye, hogy ehhez nem kell STL, hátránya, hogy kell egy 476byte-os puffer (már ha ez hátrány a konkrét esetben).
Persze nem írtad, hogy merről merre akarod "léptetni" a tárolót, a fenti példa az egész puffert egyel magasabb címre másolja (1 dworddel, azaz 4 byte-tal).
A példában a léptetendő adatterület a DB1.DBD0-nál kezdődik. Nem próbáltam ki, hogy nem vétettem-e hibát benne, a példával az elvet próbáltam szemléltetni...Ja igen: A pufferrel való vacakolás azért kell, mert amennyire emlékszem, a BLKMOV (SFC20) nem engedi meg hogy a másolt cél és forrás terület átfedésben legyen egymással. Persze biztos megírta már valaki azt a blkmove-t amelyiknél ez nem gond, de kapásból nem tudok olyat most.
Új hozzászólás Aktív témák
- Ducky One 3 FULL/TKL/SF/MINI billentyűzetek többféle színben és kapcsolókkal, plusz csuklótámaszok
- Bomba ár! Lenovo ThinkPad T470s - i5-6GEN I 8GB I 256SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- 164 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4090
- LENOVO ThinkPad P50 - 15,6", E3-1505M v5, 16GB RAM, SSD, Quadro M2000M 4GB, jó akku, számla, 6 hó
- AKCIÓ! Dell Latitude 5455 14 FHD+ üzleti notebook - Qualcomm X Plus X1 16GB DDR5 512GB SSD W11
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


