Baby Yoda
Contributor
- Poruka
- 21.753
To je svakako dobra ideja.Možemo ih grupirati po raznim područjima korištenja? I onda top-lista?
Donji video prikazuje kako da instalirate aplikaciju na početni ekran svog uređaja.
Napomena: This feature may not be available in some browsers.
To je svakako dobra ideja.Možemo ih grupirati po raznim područjima korištenja? I onda top-lista?
У паскаличним програмским језицима може се дефинисати тип сет или декларисати варијабла типа сет. То је нешто много једноставноје од појма сет које си навео.A kako se to mapira na CPU registre?
U C++ imas bitset, ali sam skupovni tip pod uslovom da mislimo na set klasicni je binarno stablo u C++, moze biti i hash tabela.
Čini mi se da je na mnogim programskim jezicima danas teško ili nemoguće izvesti takve jednostavne operacije kao paljenje/gašenje pojedinu UI pinova? probaj recimo na Win10 iz bilo kojeg programa postaviti LPT-port Data0 u jedinicu ili nulu? A nekada je to bilo sa npr. OUT (256), 0/1....У паскаличним програмским језицима може се дефинисати тип сет или декларисати варијабла типа сет. То је нешто много једноставноје од појма сет које си навео.
На пример, за случај програмирања микроконтролера, имаш варијабли са стањима машине:
stanje : set of (MotorStop,MotorNapred,MotorNazad,LED1On,LED2On,Tast1,Tast2);
палиш обе диоде са:
Stanje := Stanje+[LED1On,LED2On];
Заустављаш мотор са:
Stanje := Stanje -[MotorNapred,MotorNazad]+[MotorStop];
Провераваш да ли је протиснут тастер Таст1:
if Tast1 in Stanje then
У примеру је скуп изграђен од набеојивог типа (енум), али може и од подинтервала:Kako palis diode? Kako se (to je u stvari enum koji ima i C) to mapira na registre?
Čini mi se da je na mnogim programskim jezicima danas teško ili nemoguće izvesti takve jednostavne operacije kao paljenje/gašenje pojedinu UI pinova? probaj recimo na Win10 iz bilo kojeg programa postaviti LPT-port Data0 u jedinicu ili nulu? A nekada je to bilo sa npr. OUT (256), 0/1....
i @zofr Ja sam svojevremeno sipao kilobajte mašinskih instrukcija iz rukava, a sada nemam pojma o čemu vi to lupetate?![]()
A sta ako imas in/out instrukcije umesto memory mapped registra? Ili na pr sta je AdresaLPT?У ПАСКАЛУ би било:
OUT : set of 0..7 absolute AdresaLPT;
Палиш, рецимо 2 и 5
OUT := OUT+[2,5];
Или гасиш 3 и 7
OUT := OUT-[3,7];
Чекаш да се постави бит 4:
while not (4 in OUT) do
?? Ti si prespavao časove informatike?A sta ako imas in/out instrukcije umesto memory mapped registra? Ili na pr sta je AdresaLPT?
Cak i u C-u, to nije portabilno i cisto... Pogotovo sto moras da kastujes u tip koji ti treba neki
broj. Mislim da to Pascal ni pod razno ne moze. A mapiranje seta na adresu bez kasta je 10 puta
gore nego kako se radi u C-u.
Adresa LPT-porta? U moje vreme je I/O instrukcija na adresne linije PROCESORA bacala adresu toga porta, a na DATA linije postavljalo ili čitalo podatke. Samo za TEBE sam izvukao svoju XP-makinu da vidiš koje su IO adrese bile za LPT-port. Sve do W98 i Visual Basic 5.0 si mogao bez problema da postavljaš ili čitaš pojedine BITOVE na data linijama:Iz koje si ti price ispao. Bas na PC portovi nisu mapirani na adrese memorije vec se koriste iskljucivo i jedino preko in/out instrukcija,?? Ti si prespavao časove informatike?Adresa LPT-porta? U moje vreme je I/O instrukcija na adresne linije PROCESORA bacala adresu toga porta, a na DATA linije postavljalo ili čitalo podatke. Samo za TEBE sam izvukao svoju XP-makinu da vidiš koje su IO adrese bile za LPT-port. Sve do W98 i Visual Basic 5.0 si mogao bez problema da postavljaš ili čitaš pojedine BITOVE na data linijama:
Pogledajte prilog 708317
Izvini, ja sam stara škola, pojam set je za mene špansko selo.....Šta ti znači 'čistoća koda'? Ako si na mikrokontrolerima imao problem nestašice memorijskog prostora, neke stvari si odradio u mašincu, a ne kompilovanjem nekog višeg jezika....Iz koje si ti price ispao. Bas na PC portovi nisu mapirani na adrese memorije vec se koriste iskljucivo i jedino preko in/out instrukcija,
koje ni pod razno ne mozes da mapiras preko seta. Ajmo i na drugi nacin. set mora tacno da se specificira kako se mapira u memoriji
da bi mogao da mapiras registre sto samim tim pravi set beskorisnu konstrukciju. Pascal je oduvek bio neupotrebljiv za bilo sta low level,
sve dok Borland nije uradio svoje ekstenzije. No ovde govorimo o cistoci koda. Da u low level programiranju nema cistog koda,
i to raditi u Pacal-u je kontra produktivno.
I/O адресни простор је издвојен из меморијске мапе података и кода програма. У праву си да то ствара проблем који се може превазићи само писањем функције на асемблеру, за дати процесор, која ће адресу варијабле тумачити као адресу у I/O простору. Та функција ће занемарљиво смањити ефикасност програма.A sta ako imas in/out instrukcije umesto memory mapped registra? Ili na pr sta je AdresaLPT?
Cak i u C-u, to nije portabilno i cisto... Pogotovo sto moras da kastujes u tip koji ti treba neki
broj. Mislim da to Pascal ni pod razno ne moze. A mapiranje seta na adresu bez kasta je 10 puta
gore nego kako se radi u C-u.
Iz koje si ti price ispao. Bas na PC portovi nisu mapirani na adrese memorije vec se koriste iskljucivo i jedino preko in/out instrukcija,
koje ni pod razno ne mozes da mapiras preko seta. Ajmo i na drugi nacin. set mora tacno da se specificira kako se mapira u memoriji
da bi mogao da mapiras registre sto samim tim pravi set beskorisnu konstrukciju. Pascal je oduvek bio neupotrebljiv za bilo sta low level,
sve dok Borland nije uradio svoje ekstenzije. No ovde govorimo o cistoci koda. Da u low level programiranju nema cistog koda,
i to raditi u Pacal-u je kontra produktivno.
Васо, добро те служи памћење. Изгледа да ОС даје предност улазно/излазним адресама и тај простор не користи за ништа друго, те тако нема преклапања. Када сам гледао где смешта варијабле, увек су биле далеко изнад улазно/излазних адреса, али то мора да проверим.?? Ti si prespavao časove informatike?Adresa LPT-porta? U moje vreme je I/O instrukcija na adresne linije PROCESORA bacala adresu toga porta, a na DATA linije postavljalo ili čitalo podatke. Samo za TEBE sam izvukao svoju XP-makinu da vidiš koje su IO adrese bile za LPT-port. Sve do W98 i Visual Basic 5.0 si mogao bez problema da postavljaš ili čitaš pojedine BITOVE na data linijama:
Pogledajte prilog 708317
O kakvom to preklapanju on tupi? Npr. Instrukcijom 'OUT (port), A' si sadržaj akumulatora postavio na Data linije. Uz to je išao i signal na neki I/O pin procesora, a to je onda periferija shvatila, dekodirala adresu i pokupila podatak. Već u sledećoj instrukciji sve to NESTAJE sa adresnih i data linija. I obrnuto kod IN komande: Sa određene periferije si pokupio neki podatak, spremio ga negde i gotovo, nema toga više na AD-linijama itd....Васо, добро те служи памћење. Изгледа да ОС даје предност улазно/излазним адресама и тај простор не користи за ништа друго, те тако нема преклапања. Када сам гледао где смешта варијабле, увек су биле далеко изнад улазно/излазних адреса, али то мора да проверим.
У праву си, али програмски језик барата са адресама и незна дали је то адреса РАМ-а или периферије.O kakvom to preklapanju on tupi? Npr. Instrukcijom 'OUT (port), A' si sadržaj akumulatora postavio na Data linije. Uz to je išao i signal na neki I/O pin procesora, a to je onda periferija shvatila, dekodirala adresu i pokupila podatak. Već u sledećoj instrukciji sve to NESTAJE sa adresnih i data linija. I obrnuto kod IN komande: Sa određene periferije si pokupio neki podatak, spremio ga negde i gotovo, nema toga više na AD-linijama itd....
kakvi su to programski jezici koji to ne znaju? Ti softveraši su potpuno odlepili!У праву си, али програмски језик барата са адресама и незна дали је то адреса РАМ-а или периферије.
Тако да постоји адреса ЛПТ1, али и иста адреса у РАМ простору. Када пишеш у машинцу нема проблема, али у вишим програмским језицима то јесте проблем
Али, погледах на брзину и видех да је за приступ периферијама резервисан улазно/излазни простор у оквиру BIOS Data Area, што се не преклапа са простором за податке.
Pa 8085 je imao IN i OUT instrukcije za periferiju, a hrpu drugih za registre i memoriju! https://www.tutorialspoint.com/in-and-out-instructions-in-8085-microprocessorU standardnom Pascalu ne mozes da inicijalizujes pointer sa adresom, a kamoli daНапиши пар исказа које мислиш да не може паскал да уради, па да видимо.
Da, barata, ali nemas u Pascalu nikakvu informaciju o tome, tj ono sto se moze u C-u ne moze se u standardnom Pascalu.У праву си, али програмски језик барата са адресама и незна дали је то адреса РАМ-а или периферије.
O cemu ti pricas? Ja uporno kazem da Pascal ne moze da se koristi za low level programiranje, jer je "cist", i da ga Borland ekstenzijeO kakvom to preklapanju on tupi? Npr. Instrukcijom 'OUT (port), A' si sadržaj akumulatora postavio na Data linije. Uz to je išao i signal na neki I/O pin procesora, a to je onda periferija shvatila, dekodirala adresu i pokupila podatak. Već u sledećoj instrukciji sve to NESTAJE sa adresnih i data linija. I obrnuto kod IN komande: Sa određene periferije si pokupio neki podatak, spremio ga negde i gotovo, nema toga više na AD-linijama itd....
Ја избегавам, кад могу, процесоре и микроконтролере који немају јединствени меморијски оростор. Јединствени мем. простор значи да на сваку локацију могу да применим све асемблерске инструкције. За локације у И/О простору само ИН и ОУТ и то ме иритира.kakvi su to programski jezici koji to ne znaju? Ti softveraši su potpuno odlepili!![]()
Pa 8085 je imao IN i OUT instrukcije za periferiju, a hrpu drugih za registre i memoriju! https://www.tutorialspoint.com/in-and-out-instructions-in-8085-microprocessor
Нису екстензије које је измислио Борланд, већ је Вирт написао прог. језик Модула 2 који је проширени паскал са модулима и неким могућностима нижих прог. језика. Нешто од тога је Борланд унео у стандардни паскал и назвао га турбо паскал.U standardnom Pascalu ne mozes da inicijalizujes pointer sa adresom, a kamoli da
mapiras neku varijablu na neku adresu. To su verovatno Bolrand ekstenzije.
Што се тиче усвојеног стандарда за Виртов паскал ту си у праву, то је језик високог нивоа, а они несмеју да имају икакве везе са структуром рачунара.Da, barata, ali nemas u Pascalu nikakvu informaciju o tome, tj ono sto se moze u C-u ne moze se u standardnom Pascalu.
No malo mislim da smo se sad pogubili zato sto neki jezik koji ima set i string i nimalo nije namenjen low level
programiranju poredis sa C-om koji je u startu za to namenjen.
Може и то помоћу варијантног слога. Једно поље декларишеш као поинтер и као ворд или лонг ворд, па упишеш у то поње адресу, а прочиташ као поинтер. То је међутим трик програмирање које не волим, али срећом да је Борланд проширио паскал са неким стварима из модуле 2.O cemu ti pricas? Ja uporno kazem da Pascal ne moze da se koristi za low level programiranje, jer je "cist", i da ga Borland ekstenzije
cine prljavijim i nesigurnijim od C-a za tu namenu, a ti uleces sa komentarima koji nemaju nikakve veze sa diskusijom.