PCPROG.2

06 Nov 1992 - 26 Jul 1993

Topics

  1. algoritmi (223)
  2. ms.dos (250)
  3. asembler (141)
  4. jezici (278)
  5. pascal (1307)
  6. cccc (752)
  7. cpp (91)
  8. clipper (1027)
  9. baze.podataka (229)
  10. razno (379)
  11. van.teme (189)
  12. basic (56)

Messages - asembler

asembler.103 spantic, -> #102, dens
> Ima li neko asembler za mikroprocesor 6502 ? Asembler 6502 > iz paketa TASM???.??? (bio je okačen na sezamu) ne > odgovara potrebama. Mislim da sam ga video na Hobbitonu.
asembler.104 mazi, -> #101, valhala
> Pitanje: kakvo je znacenje naredbi insb i outsb? ins uzima byte, word ili dword sa spoljnjeg uređaja, sa adrese smeštene u DX, i smešta ga na adresu es:di, a outs šalje byte, word ili dword na spoljni uređaj na adresu određenu sa DX sa adrese ds:si. Inače, INS BYTE PTR ŠES:bilostaĆ,DX radi isto što i INSB isto kao i INS WORD PTR ŠES:bilo staĆ,DX, koji je isto što i INSW Što li su zapetljavali, pojma nemam. Ivan.
asembler.105 mazi, -> #100, valhala
> RADI!!!!!!!!!!!!!!:))))))))))))))))))))))) Sreća tvoja da je proradilo! :))) Ivan.
asembler.106 ficus, -> #104, mazi
:) Inace, INS BYTE PTR SES:bilostaC,DX radi isto sto i INSB :) isto kao i INS WORD PTR SES:bilo staC,DX, koji je isto sto i INSW :) Sto li su zapetljavali, pojma nemam. Pa insb i insw kao i outsb i outsw su predvidjene za rad sa REP prefixom koj ce tu naredbu vise puta da izvrsi i automatski se i menja adresa di tj ako imas: REP INSW port ; ne secam se tacne sintaxe jer mi portovi ; apsolutno nisu trebali desice se sledece: dok god ti je cx>0 ulazice podaci sa porta i smestati se na ES:DI DI ce se povecavati ili smanjivati za 2 u avisnosti od df -flaga (direct (direction flag ???) i cx ce se smanjivati za 1. Drugim recima insw je specijalizovana da smesta podatke na es:di i automatski azurira di a obicno se koristi sa rep prefixom mada moz biti zgodno i sa loop Primena je za rad sa stringovima ili bilo kakvim nizovima a sa rep prefixom je mnogo brze nego sa loop mada in i out obicno procesor ceka ostatak hardvera. Eto zasto su zapetljavali P.S. Sory ako sam slucajno negde u objasnjenju zabrljo imam 2 jaka razloga: 1. Spava mi se. 2. Sa asm-om vec neko vreme ne petljam tolko intenzivno a sa portovima nikad nisam ni petljao tako da sam siguran u sve sem u specifikaciju po porta (parametar koj se nalazi iza insb/insw) FICUS
asembler.107 mazi, -> #106, ficus
> P.S. Sory ako sam slucajno negde u objasnjenju zabrljo imam 2 > jaka razloga: Ma ne uzrujavaj se uopšte oko takih stvari :)) Mene je jedino zaintrigiralo to što recimo MASM prihvata kad napišeš (staviću male zagrade umesto srednjih zbog YUSCII-ja) INS byte ptr (ES:bilošta),DX i kad napišeš samo INSB, ali na kraju, kad se debaguje, stoji samo INSB. Inače za INSB i OUTB (i ostale u grupi), važe ista pravila ko i za sve naredbe koje se završavaju na B ili W (MOVSB, STOSB, itd) - zavise od DF (direction flag-a), uvećavaju- -umanjuju SI i DI, vezani za ES i DS, umanjuju CX. Ja onako, usput. Ivan.
asembler.108 valhala, -> #105, mazi
Mani, startovo ga x(tezi beskonacnom)puta samo da uzivam u prelivima:))))) Jos jednom puuuuuno hvala:) Val.
asembler.109 bulaja,
**** new file **** R:\IBMPC\PROGRAM\*.* ---------------------- 80x0393 zip 172660* 80xxx Snippets, zbirka korisnih funkcija u asembleru Nabavljeno zahvaljujuci FFS-u i Skerlu. Uz poruku je prikacen spisak stvari koje se nalaze u zbirci. 80x_list.zip
asembler.110 mazi, -> #108, valhala
> Mani, startovo ga x(tezi beskonacnom)puta samo da uzivam u > prelivima:))))) Jos jednom puuuuuno hvala:) Nego, nije ti se valjda prelilo i na tepih? :))) Inače, nema na čemu :)) Ivan.
asembler.111 valhala,
Ajde sad ovakooo: kako da jedan manipulise fajlovima iz asemblera? Znaci one stvari:direktorijumi, kopiranje, otvaranje, iscitavanje, etc. Val.
asembler.112 dejanr, -> #111, valhala
>> Ajde sad ovakooo: kako da jedan manipulise fajlovima iz asemblera? Znaci >> one stvari:direktorijumi, kopiranje, otvaranje, iscitavanje, etc. Bojim se da ovo pitanje malo prevazilazi nešto na šta bi se odgovorilo u jednoj poruci. U globalu, napune se registri nekim vrednostima pa se pozove odgovarajući INT. Treba ti neka knjiga o DOS-u - preporučujem "Advanced MS-DOS" Reja Dankana ili, ako ne možeš da dođeš do stranih knjiga, umetak Zorana čivotića iz "Računara 28", naslov je bio "Sve MS DOS funkcije" Ako preferiraš "elektronski čitljivu" literaturu, imaš ovde u direktorijumu INFO fajlove INTER33, sa podacima o svim MS-DOS funkcijama.
asembler.113 bulaja, -> #112, dejanr
│Ako preferiras "elektronski citljivu" literaturu, imas ovde u direktorijumu │INFO fajlove INTER33, sa podacima o svim MS-DOS funkcijama. └─── Nek saceka do sutra, trebao bih (konacno:) da okacim Inter34, a i jos mnoge druge lepe stvari (da, i jargon:) koje sam preuzeo od skerla.
asembler.114 valhala, -> #112, dejanr
Skinuo sam dva fajla, ili mozda tri, o interaptima, i to jos ranije, i koliko mi se cini, int13 radi sa diskom, ne? Nego apropo clanka iz racunara, da li neka dobra dusa ima to ukucano u komp, pa da mi majlne?(izvinjenja autoru na eventualnom krsenju autorskih prava, etc.) P.S. ajde ljudi zivnite malo, ako pogledate u vas sor videcete da je ova tema malkice previse zgasnula. Niste valjda rekli sve sto ste imali, pa ja sam tek dosao:) ocu da cujem puuuuno lepih stvari i saveta, zasto pratim ovu temu ako ne zbog toga. Dakle KUCAJTE!:) Val.
asembler.115 sslavko, -> #114, valhala
>> Dakle KUCAJTE!:) Kuc, kuc.
asembler.116 mmile,
Kako se u zasticenom modu (386/486) pristupa bios-u ?
asembler.117 dino,
rz B0080000000dd38 Moj drug Vladimir poceo je da vezba asembler, napisao je jedan rezidentan program koji bi trebao ispisivati datu rec na vrhu ekrana a zatim bi sa svakim interaptom ona kretala u desno, ali program mu ne radi dobro pa moli za pomoc, uz poruku je prilozen program. Pozdrav od D.Kovacevica i V.Lomovica asm6.zip
asembler.118 mornar,
Aj' nek nekog ne mrzi da napise kako bi uradio sledecu stvar u assembleru... Konkretno, radim interrupt rutinu koja treba da posrtavi bafer sa paletom slike (768 bajtova) na poziciju ES:DX . Pitanje kratko i jasno: KAKO da bafer smestim na to mesto. Ako je nekom lakse neka jednostavno prevede sledecu C funkciju na asembler : union REGS regs; struct SREGS sregs; void SetAllPalette(char *p) { regs.x.ax=0x1012; regs.x.bx=0; regs.x.cx=256; sregs.es=FP_SEG(p); regs.x.dx=FP_OFF(p); int86x(0x10,&regs,&regs,&sregs); } Hvala svima unapred - Mornar. PS. Mozda ce se neko i smejati, stvar je zaisůta jednostavna, ali ja nisam neki assemblerista, a ovo mi bas treba u istom.
asembler.119 vitez.koja, -> #118, mornar
#=> union REGS regs; #=> struct SREGS sregs; #=> #=> void SetAllPalette(char *p) #=> { #=> regs.x.ax=0x1012; #=> regs.x.bx=0; #=> regs.x.cx=256; #=> sregs.es=FP_SEG(p); #=> regs.x.dx=FP_OFF(p); #=> int86x(0x10,&regs,&regs,&sregs); #=> } Da pretpostavimo da P sadrzi cetvorobajtni pointer na to mesto... P DW 2 DUP(?) MOV DX, P MOV ES, DX MOV DX, P[1] MOV AX, 1012H XOR BX, BX MOV CX, 100H INT 10H
asembler.120 mmile,
Zamolio me je ortak da postavim ovo pitanje. Kako se pristupa BIOS-u iz zasticenog rezima ( na 386/486 ) ? btw pominjao mi je neki ABIOS od 128k i sl. stvari ali ga nisam 100 %ukapirao.
asembler.121 martin,
Zamolio bi nekog programera na ASEMBLERU da mi pomogne. Potreban mi je rezidentni program koji kontrolise izlaz na stampac i usput menja neke karaktere. Radi se o problemu YU seta: kolega poseduje herkules sa Custom2 setom a stampac ne podrzava taj set.
asembler.122 darone, -> #121, martin
>> kolega poseduje herkules sa Custom2 setom a >> stampac ne podrzava taj set. Ako ima štampač sa YUSCII setom, neka presvičuje na mikroprekidačima raspored na _američki_. Trebalo bi da sve bude u redu (a pogotovo ako je EPSON). Ako ne radi, neka vrati na staro, da ne bude da sam zajebo stvar :) darone
asembler.123 ppekovic, -> #121, martin
>> Zamolio bi nekog programera na ASEMBLERU da mi pomogne. >> Potreban mi je rezidentni program koji kontrolise izlaz na stampac >> i usput menja neke karaktere. Radi se o problemu YU seta: >> kolega poseduje herkules sa Custom2 setom a stampac ne podrzava >> taj set. Pre godinu dana sam ja napravio jedno programče u C-u jer sam imao upravo taj problem. Sve bi bilo lepo i krasno da nema kontrolnih sekvenci. A pošto ih ima, onda bi morao da upišem u jednu tabelu sve kontrolne sekvencem pa da proveram da li se niz bajtova koji ide na štampu slaže sa nekom od njih, pa da, ... Sve u svemu može, ali je mnogo dosadan posao. Paya
asembler.124 nkbog, -> #121, martin
> Potreban mi je rezidentni program koji kontrolise izlaz na stampac > i usput menja neke karaktere. Radi se o problemu YU seta: Tu treba obrađivati i ESC sekvence. Trenutno imam razvijeno nešto slično za JUS.015. S obzirom da je to što je potrebno potskup tih funkcija, samo primenjeno na drugi kodni raspored, možemo, eventualno, preko "maila" da se dogovorimo oko neke kastomizovane verzije. Pozdrav, Nenad Bogojević
asembler.125 dejanr,
U direktorijumu PROGRAM je CPUID.ZIP, oficijelni Intelov source za identifikaciju 80x86 procesora. Preuzeto sa Intel-ovog BBS-a.
asembler.126 djnsnd,
Da li neko moze da mi pomogne? Treba da prevedem neki Pascal source, ali on zahteva postojanje datoteke tipa .OBP. Imam listing tog programa, ali kada upotrebim TASM mogu da dobijem samo .OBJ datoteku. Naravno, pronasao sam prekidac /op koji asembleru naredjuje da pravi object datoteku za protected mode, ali i sa njim dobijam kao razultat .OBJ datoteku. Hvala. Djn
asembler.127 goran,
Da li bi mi neko mogao reci gde mogu da nadjem asembler i pratecu literaturu ? Unapred se zahvaljujem na odgovoru. Goran
asembler.128 drpr, -> #127, goran
-> Da li bi mi neko mogao reci gde mogu da nadjem asembler i -> pratecu literaturu ? Za knjige na našem jeziku ,a i pod sankcijama, na stranom ovde ćeš teško naći :(. Ipak ima nade pa pogledaj u stare pc.prog konferencije te ćeš tamo naći asmtutor, lw286 i ostale stvari. Za originalan softwer ti ne mogu pomoći (probaj kod CET-a ako imaš love) jer ne smem preko sezama a u diru imaš mali asembler koji je sasvim dovoljan za počretak pa navali. cope
asembler.129 spantic, -> #128, drpr
> Za knjige na našem jeziku ,a i pod sankcijama, na stranom > ovde ćeš teško naći :(. Ipak ima nade pa pogledaj u > stare Nije baš sasvim tačno. Od literature na srpskom postoji za asembler 8086 knjiga Mileta Stojčeva "Savremeni 16-bitni mikroprocesori", stara više godina :) Tu se obrađuje i Motorola 68000 i još ponešto.
asembler.130 janko,
1. Ima li neko DPMI _programersku specifikaciju_? 2. Ima li neko primer programa koji radi pod DPMI? 3. Da li pri radu sa DPMI treba memoriju rezervisati kroz XMS drajver ili ne? 4. Kako pisati protektid programe samo uz XMS drajver (da li je to uopšte moguće?) 5. Pod pretpostavkom da "ogolim" računar (tj. izbacim sve programe koji bi eventualno 'teli da koriste nešto iznad 640K) koji je minimalni kod, sa kojim bih mogao da pišem 386 kod u protektid modu, a zatim se "prizemljim" u DOS? Dakle, kako programirati u asembleru 386 programe pod DOS-om?
asembler.131 dejanr, -> #130, janko
>> Dakle, kako programirati u asembleru 386 programe pod DOS-om? Samo asembler - napraviš program i on će raditi ako nema ničega što bi ga sprečilo da pređe u protected mode. Samo, iz takvog programa nećeš moći da koristiš usluge DOS-a, nego bi sve morao sam da pišeš. Mislim da DPMI nije rešenje, jer se tako, ako ja dobro shvatam, ne dobija pravi 32-bitni kod nego neki 16-bitni hibrid. Dakle, jedino da uzmeš neki DOS extender, tu se lepo pišu 32-bitni programi... ali je dosta skup (program i literatura), a često se zahteva i docnije plaćanje tantijema za svaki distribuirani primerak programa.
asembler.132 drpr, -> #129, spantic
-> Nije baš sasvim tačno. Od literature na srpskom postoji za -> asembler 8086 knjiga Mileta Stojčeva "Savremeni 16-bitni -> mikroprocesori", stara više godina :) Tu se obrađuje i -> Motorola 68000 i još ponešto. Vidi ja imam te knjige (dve od tri) i potpuno sam zaboravio na njih. Veoma su zanimljive ali se na bave samo assemblerom pa se verovatno zato nisam ni setio :) cope
asembler.133 draganm,
Da li neko ima ideju kako da u turbo debugeru postavim expression breakpoint tako da izvrsavanje programa stane kada je ax=0925 i IP pokazuje na int 21 komandu ...
asembler.134 .obj, -> #131, dejanr
> sam da pišeš. Mislim da DPMI nije rešenje, jer se tako, ako > ja dobro shvatam, ne dobija pravi 32-bitni kod nego neki 16-bitni > hibrid. Slažem se. Pod DPMI-jem (koliko sam ja gledao) programi se pišu isto kao pod DOS-om, jedino umesto "fizičkih" segmenata imaš selektore, čime je omogućena daleko veća memorija nego u realnom režimu. Stvar je *veoma* slična 16-bitnim Windows programima - segmenti su 64Kb, ali ih ima kol'ko 'oćeš :) zahvaljujući selektorima. Svi DPMI serveri omogućavaju iz normalno pozivanje (skoro) svih DOS funkcija. > Dakle, jedino da uzmeš neki DOS extender, tu se lepo pišu > 32-bitni programi... ali je dosta skup (program i literatura) Pošto janko kaže "32-bitni programi u asembleru", postoji još jedno rešenje ("rešenje";) a to je da napiše Windows program koji koristi WINMEM32.DLL. Upotrebom ovog DLL-a mogu se pisati 32-bitni programi pod običnim Windows-om. Jedini, i najnezgodniji, problem je što se Windows API funkcije ne mogu pozivati iz 32-bitnog dela programa, već se mora napraviti poseban segment (Microsoft ga zove "helper segment") iz koga se pozivaju Windows API (ili DOS) funkcije. Stvar nije baš jednostavna jer se pre prenošenja neke 32-bitne adrese Windows API funkciji mora uraditi njeno "zaključavanje" - naime, 32-bitna adresa je samo jedna LONG vrednost, a Windows API funkcije primaju standardnu selektor:ofset adresu. Zbog toga postoji nekoliko funkcija u WINMEM32.DLL koje "transformišu" 32-bitnu adresu u selektor:ofset. Na sreću, nije neophodno pisati zaključavanje podataka svaki put kada se poziva neka Win API funkcija - dovoljno je da se 32-bitni poziv (recimo) funkcije CreateWindow napiše samo jednom - posle toga se poziva sopstveni (npr.) CreateWindow32 koji radi posao. Malo sam konfuzan, ali nadam se da je jasno. ;) Verujem da će MS na nabudži nekakav WINMEM32-EASYWIN, za obične C programe u 32-bitnom režimu. :) Optimista. ;)
asembler.135 .obj, -> #133, draganm
> Da li neko ima ideju kako da u turbo debugeru postavim expression > breakpoint tako da izvrsavanje programa stane kada je ax=0925 i IP pokazuje > na int 21 komandu ... Samo treba da postaviš globalni breakpoint (iz menija) koji bi izgledao nekako ovako: (AX EQ 0925H) AND ( (. WORD PTR CS:IP .) EQ 021CDH). Zameni (. i .) sa uglastim zagradama. Jedini problem je što ovo ima da jaaaako uspori izvršavanje programa.
asembler.136 draganm, -> #135, .obj
*> Jedini problem je sto ovo ima da jaaaako uspori izvrsavanje *> programa. Na 486 to i nije neki problem :)
asembler.137 bojanp, -> #135, .obj
>> Da li neko ima ideju kako da u turbo debugeru postavim expression >> breakpoint tako da izvrsavanje programa stane kada je ax=0925 i IP >> pokazuje na int 21 komandu ... > > Samo treba da postaviš globalni breakpoint (iz menija) koji bi izgledao > nekako ovako: (AX EQ 0925H) AND ( (. WORD PTR CS:IP .) EQ 021CDH). > Zameni (. i .) sa uglastim zagradama. > > Jedini problem je što ovo ima da jaaaako uspori izvršavanje programa. Sem pomenute varijante, postoji još jedna koja ne usporava izvršenje programa, ali joj je mana da je već otpočelo izvršavanje pomenutog interrupta. Postavi uslovni breakpoint na početak rutine za obradu pomenutog interrupta koji glasi AX EQ 0925h. Ova varijanta neće raditi u slučaju da program instalira novu interrupt rutinu. Pozdrav, Bojan
asembler.138 .obj, -> #136, draganm
> Na 486 to i nije neki problem :) Pa, TD pri glob.breakpt. usporava dibagovani program za 10-50 puta - za strpljive to verovatno nije problem ;) Ou bi džej
asembler.139 ficus, -> #127, goran
> Da li bi mi neko mogao reci gde mogu da nadjem asembler i > pratecu literaturu ? Literaturu je prilično teško kod nas naći (na srpskom). Na engleskom još i ima, ali je gadno skupa... Dakle izvoli, uzmi neki od fajlova za učenje iz direkto- rijuma /msdos/program/assembler (valjda tako) sa FFS-a, ili pogledaj starije po- ruke u PC.PROG (ne PC.PROG.2) u temi asembler. Tamo je mjova ostavljao neke tu- torijale... Pozdrav, Deki
asembler.140 ficus, -> #130, janko
> 1. Ima li neko DPMI _programersku specifikaciju_? > > 2. Ima li neko primer programa koji radi pod DPMI? > > 3. Da li pri radu sa DPMI treba memoriju rezervisati kroz XMS > drajver ili ne? > > 4. Kako pisati protektid programe samo uz XMS drajver (da li je > to uopšte moguće?) > > 5. Pod pretpostavkom da "ogolim" računar (tj. izbacim sve > programe koji bi eventualno 'teli da koriste nešto iznad 640K) > koji je minimalni kod, sa kojim bih mogao da pišem 386 kod > u protektid modu, a zatim se "prizemljim" u DOS? > > Dakle, kako programirati u asembleru 386 programe pod DOS-om? > Mani se DPMI-a ako ti baš nije hitno... Pozdrav, Deki
asembler.141 dens, -> #140, ficus
>> Mani se DPMI-a ako ti baš nije hitno... >> >> Pozdrav, Deki Mani se dugačkih quote-ova ... Pozdrav, Dejan :)