PCPROG.6

25 Sep 1995 - 24 Dec 1999

Topics

  1. algoritmi (449)
  2. baze.podataka (309)
  3. ms.dos (17)
  4. windows (294)
  5. asembler (553)
  6. basic (458)
  7. jezici (42)
  8. pascal (1297)
  9. cccc (522)
  10. cpp (299)
  11. clipper (601)
  12. fox (70)
  13. cavo (14)
  14. delphi (1130)
  15. java (100)
  16. razno (776)
  17. unknown (127)

Messages - asembler

asembler.311 firus, -> #308, jexy
Je> Ako neko ima ideju sta bi to moglo biti neka javi. Jedno glupo pitanje. Da li je to tvoj program? Ako nije tvoj, jako je moguće da se radi o antidebug zaštiti. X
asembler.312 jexy, -> #311, firus
;; ;; Jedno glupo pitanje. Da li je to tvoj program? ;; ;; Ako nije tvoj, jako je moguce da se radi o antidebug zastiti. ;; :) Pa naravno da je moj program..
asembler.313 biber, -> #304, tomcat
>> l2: >> mov cx,8 // sabiramo 8 clanova jedne kolone >> l1: >> add ax,word ptr es:[di] // ax:=ax+a[i,j] >> sub di,2 // j:=j-2; >> loop l1 >> add di,40 // (12+8)*2 byte razlike >> dec dx // sledeca vrsta >> and dx,dx >> jnz l2 // ako je dx=0 onda kraj >> end; // u ax-u ostaje rezultat! Malo brže je (bar na nekim procesorima) umesto: sub di,2 napisati: dec di dec di Takođe, posle "dec dx" nije potrebno "and dx,dx" jer se pri "dec dx" automatski postavlja ZF. Dalje, ako je brzina imperativ, nemoj da sabiranje stavljaš u petlju, nego "ručno" ispiši sva sabiranja. Čini mi se da ih imaš svega pedesetak. add ax,(adresa elementa a[3,3]) add ax,(adresa elementa a[3,4]) add ax,(adresa elementa a[3,5]) itd.
asembler.314 tomcat, -> #313, biber
> Malo brze je (bar na nekim procesorima) > umesto: sub di,2 > > napisati: dec di > dec di Tako sam i ja prvobitno napisao i onda se iznenadio kada je sub di,2 bio nekih 15 % brzi (na Cyrix-u). > Takode, posle "dec dx" nije potrebno "and dx,dx" jer se pri "dec dx" > automatski postavlja ZF. Hvala. To sam prevideo. > Dalje, ako je brzina imperativ, nemoj da sabiranje stavljas u petlju, > nego "rucno" ispisi sva sabiranja. Cini mi se da ih imas svega pedesetak. > > add ax,(adresa elementa a[3,3]) > add ax,(adresa elementa a[3,4]) > add ax,(adresa elementa a[3,5]) Ima ih 64. I u pravu si ustedece 64x10 clockova. Jedino treba ispisati sve i tada je vrlo osetljivo na promene. > itd. Sta jos? :)
asembler.315 jexy, -> #304, tomcat
;; procedure add(var lm:moves;var tp:integer;x,y,x1,y1:integer); ;; begin ;; lm[tp,1]:=x; ;; lm[tp,2]:=y; // moves=array [1..80,1..5] of integer; ;; lm[tp,3]:=x1; // napomena: integeri su 16-bitni ;; lm[tp,4]:=y1; ;; inc(tp); ;; end; Prvo, nemoj da mnozis tp sa 10 vec to zameni sa siftovanjima pa ces samo zbog toga dobiti veliko ubrzanje ako se rutina poziva mnogo puta tako da bih ja ovo u asm-u uradio ovako.. procedure add(var lm:moves;var tp:integer;x,y,x1,y1:integer);assembler; asm les di,tp mov ax,es:[di] dec ax { prvi clan je lm[1,1] a ne lm[0,0] } mov dx,ax inc word ptr es:[di] shl ax,3 {; tp*8} add dx,dx {; tp*2} add ax,dx {; tp*10} les di,lm add di,ax {; es:di -> lm[tp,1]} db 66h;mov ax,[bp+8] {; mov eax,[bp+8] ax=y} db 66h;ror ax,16 {; ror eax,16} db 66h;stosw; {; lm[tp,1]:=x; lm[tp,2]:=y } db 66h;mov ax,[bp+4] {; mov eax,[bp+4] ax=y1} db 66h;ror ax,16 {; ror eax,16 } db 66h;stosw; {; lm[tp,3]:=x1; lm[tp,4]:=y1 } end;
asembler.316 tomcat,
Nesto sto me je zapanjilo. Sledece naizgled najprostija petlja na planeti kompajlirana Turbo Pascalom 7 je skoro 10 puta sporija nego kad se napise u asembleru. ----------- sum:=0; for i:=1 to 8 do for j:=1 to 8 do sum:=sum+a[i,j]; ----------- Vreme za 5,000,000 iteracija: TP7=43.6 sec ASM=4.6 sec
asembler.317 jexy, -> #314, tomcat
;; ;; Ima ih 64. I u pravu si ustedece 64x10 clockova. Jedino treba ;; ispisati sve i tada je vrlo osetljivo na promene. ;; To se moze uprostiti ako doticnu rutinu pises odvojeno i zatim je ulinkujes u PASCAL zato jer onda mozes koristiti makroe koji mnogo skracuju pisanje. Takodje ako znas da konacna vrednost SIGURNO staje u 16 bita odnosno da se pri sabiranju nece javiti prekoracenje onda mozes da koristis 32-bitne registre i razlika u brzini bi bila velika.. Evo kako bi trebalo da izgleda eksterni .asm fajl (npr. eval.asm) koga, nakon sto napravis eval.obj, ulinkujes u PASCAL sa jednim {$l eval.obj} function eval(var a:tabla):integer;external; ..i onda normalno radis sa funkcijom. BTW, ovde sam pretpostavio zbir svih vrednosti staje u 16 bita i da nema negativnih vrednosti. Ako to nije ispunjeno onda ti preostaje da koristis add ax,[...] umesto add eax,[...] ---------------------------------------------------- .386 code segment use16 assume cs:code public eval eval proc near a equ [bp+4] ; +2 zbog push bp push bp mov bp,sp push ds lds si,a ; ds:si -> a[1,1] add si,(2+2*12)*2 ; krecemo od a[3,3] xor eax,eax I=0 REPT 8 J=0 REPT 4 ; REPT 8 ako rez. ne staje u 16 bita add eax,[si+(I*12+J)*2] ; *2 zato sto su word tipa J=J+2 ; J=J+1 ako rez. ne staje u 16 bita ENDM I=I+1 ENDM shld edx,eax,16 ; ovo ne treba ako add ax,dx ; rez. ne staje.. pop ds pop bp ret 4 eval endp code ends end
asembler.318 jjerry,
Evo jedno,verovatno laičko, pitanje : Ovaaj..dakle,kako da proceduru u jednom ASM fajlu ulinkujem sa C++ programom.Tacnije ,trebaju mi procedure i neke definicije iz tog fajla da bi ih povez'o sa hederom i ¨normalno¨ koristio.U asm fajlu imam sve Public deklaracije,neke procedure imaju i argumente..itd. Pomagajte !
asembler.319 biber, -> #314, tomcat
>>> add ax,(adresa elementa a[3,3]) >>> add ax,(adresa elementa a[3,4]) >>> add ax,(adresa elementa a[3,5]) >>> itd. >> >> Sta jos? :) "Itd." se odnosilo na oner silne add instrukcije. Nisam se dosetio ničeg više.
asembler.320 jjerry,
Hi,zanima me ovako nesto... Posto od skora pisem u asembleru (mozda bi se cak moglo reci da jos ucim) sreo sam se sa SHL,SHR,ROL,ROR itd. dakle,shift i rotate komande...Posto mi nisu jasne kako rade i cemu sluze (iako naslucujem iz naziva),moze li neko da mi opise te komande,sta rade,koje flegove setuju,i par primera. Hvala unapred :)
asembler.321 firus, -> #320, jjerry
Jj> naslucujem iz naziva),moze li neko da mi opise te komande,sta Jj> rade,koje flegove setuju,i par primera. Znaš šta su meni rekli kad sam to pitao? "Skini HELPPC." Sad ja tebi to kažem. :) Ako ne shvatiš ni posle toga, pitaj ponovo, onda ću da ti objasnim. X
asembler.322 jjerry, -> #321, firus
Ma znaam za sve te HELPPC fore (iako nemam taj HELPPC) imam onaj Norton Guide bazu za asembler (stvar je super ,inace : opsirno,detaljno) al' ja opet ne kapiram na kom principu i sta ustvari rade one SHL(R) i ROL(R) komande :) Opet kazem ,malo opsirnije,sa primerima :) 'Ajd' pozdrav !
asembler.323 banga, -> #322, jjerry
> opsirno,detaljno) al' ja opet ne kapiram na kom principu i sta > ustvari rade one SHL(R) i ROL(R) komande :) SHL pre posle 11010001 10100010 isto što i *2, u ovom slučaju ima OF ROL " 10100011 Primer je za 8 bita Za flagove i ostalo ćitaj bolan. A kako ćeš to da primeniš zavisi od tebe
asembler.324 firus, -> #322, jjerry
Jj> opsirno,detaljno) al' ja opet ne kapiram na kom principu i sta Jj> ustvari rade one SHL(R) i ROL(R) komande :) Prvo pročitaj ovo. Jel ovo bolje od tog što ti imaš. Ja bi rekao da jeste. --- CUT HERE --- SAL/SHL - Shift Arithmetic Left / Shift Logical Left Usage: SAL dest,count SHL dest,count Modifies flags: CF OF PF SF ZF (AF undefined) Shifts the destination left by "count" bits with zeroes shifted in on right. The Carry Flag contains the last bit shifted out. --- CUT HERE --- Jj> Opet kazem ,malo opsirnije,sa primerima :) Evo ga i primer. :)) Uzmeš neki broj, recimo 00110111 i nalazi se recimo u AX registru. Daš mu SHL AX,3 i šta će se desiti? Pa lepo ti kaže ono gore, ubaciće tri nule na početak i ovo pomeriti udesno za tri mesta. Znači posle ovoga u AX ostaje 00000110. Da si stavio SHR AX,4 dobio bi 01110000. Jel konačno jasno. X p.s. A da, uzmi Help PC. :)
asembler.325 jjerry, -> #324, firus
Za "ono gore" znam ,imam to.. :) Al' opet mi bas nije bilo preterano jasno...:) OK hvala,al' sad me samo interesuje kakva bi bila neka prakticna primena tih komandi :) Npr. da se dobije Hi i Lo part nekog broja ? OK je za SHL(R),a sta je sa ROL(R) i kakva je razlika izmedju SAL i SHL ? Izvin'te ako sam udavio i opet kazem 10X puno !!! Pozdrav !
asembler.326 r.i.s,
Zna li ko kako je moguce detektovati da li je ekran u modu sa 43 odnosno 50 linija (EGA/VGA) mod ? Klasicni BIOS poziv mov ah,0fh int 10h ne pomaze.
asembler.327 obren, -> #326, r.i.s
> Zna li ko kako je moguce detektovati da li je ekran u modu > sa 43 odnosno 50 linija (EGA/VGA) mod ? > > Klasicni BIOS poziv mov ah,0fh int 10h ne pomaze. To bi trebalo da radi, verovatno da negde grešiš. Ako nisi do sada, obrati pažnju da se pri pozivu te BIOS funkcije prljaju SP, BP, AX, SI i DI registri. U svakom slučaju lakše je te informacije dobiti iz tzv. "BIOS data area" gde na adresama 0000:0484h (byte) i 0000:044Ah (word) možeš saznati koji je broj redova (-1) odnosno kolona u trenutnom video modu. P.S. Ako nemaš nabavi Norton Guide za ASM, HelpPC ili TechRef (ima ih na Sezamu).
asembler.328 bokir,
NortonGuides za TASM 4.0 Ideal mode ng_tasm4.zip
asembler.329 bokir,
NortonGuides sa Intel instrukcijama od XT-a do Pentiuma. Uključuje CPU, FPU i MMX instrukcije, zajedno sa opcode-ovima. ng_x86.zip
asembler.330 acap,
Trazim pomoc u vezi asemblerske grafike i pravljenja introa. Interesuju me efekti i pointeri na prethodne zanimljive poruke. Mbasta.
asembler.331 jexy, -> #330, acap
;; Trazim pomoc u vezi asemblerske grafike i pravljenja introa. ;; Interesuju me efekti i pointeri na prethodne zanimljive poruke. ;; ;; Mbasta. U ovoj confi poruka takvog tipa je vrlo malo da ne kazem da ih uopste i nema. Ako imas pristup internetu onda ti preporucujem da pogledas sledece sajtove: http://www.cdrom.com/pub/demos - Ogromna Hornet arhiva, ima na tone sorsova ftp://x2ftp.oulu.fi/pub/msdos/programming - Takodje jos jedan gigant Moja preporuka ti je da prvo poskidas tutorijale nekih jednostavnijih efekata tipa plasma, fire, etc. pa ces kasnije moci i sam da kontas neke komplikovanije sorsove..
asembler.332 mango,
Posto treba da radimo seminarski rad iz asemblera za skolu, a ja sam u stisci sa vrmenom, da li bi neka dobra dusa htela da mi baci na mail neki jednostavniji program (sors)sa eventualnim komentarima na problematicnim mestima? Npr. neki programcic koji radi nesto sa diskovima isl. Stvar je prilicno hitna. Thanx.
asembler.333 vector,
Treba mi program 'exe2bin'. Ako ga neko ima, molio bih da mi posalje na mail.
asembler.334 jjerry,
Hi,treba mi nesto vezano za asemblerove DB,DW,DD,DT..komande. Kada definisem neki string npr. String DB 'aaa$' cemu sluze neki brojevi ispred i iza stringa npr. String DB 0,'aaa$',0AH,0EJ itd. Konkretno,da li se time moze formatirati ispis,tako da se menja boja ispisa ili da se sledeci string pojavi u drugom redu itd. ? Pozdrav ! Jjerry
asembler.335 jjerry,
Sorry,u prosloj poruci sam rek'o 0Ah,0EJ..:)) Umesto 0EJ treba da stoji 0EH ,to je valjda shvaceno..:)
asembler.336 jjerry,
Evo jednog programceta koji vraca informacije vezane za misa. Skinite (pogotovu vlasnici Geniusa i ostalih ne MSmouse miseva) i napisite ovde ili na mail (bolje na mail) da li je vratio tacne informacije,da li je bilo problema itd. Hvala ! Jjerry minfo.exe
asembler.337 space.ace, -> #334, jjerry
> Hi,treba mi nesto vezano za asemblerove DB,DW,DD,DT..komande. > Kada definisem neki string npr. String DB 'aaa$' cemu sluze neki > brojevi ispred i iza stringa npr. String DB 0,'aaa$',0AH,0EJ itd. Kada definišeš string, obično se deklariše sa DB (Declare Byte), i moraš ga terminisati znakom$. Brojevi posle toga su ti kodovi za Line Feed i Enter, mada možeš pogledati u HelpPc-u specijalne kodove. Njima, kao što si i sam rekao, formatiraš ispis. Možeš ih staviti ispred, iza, u sredinu, gde želiš :)
asembler.338 raven,
Da li neko zna da li je moguce da kada se nakacim na neki hardverski interapt, na primer tastaturu (09h) da li je moguce pod dosom otvoriti odnosno uopste raditi sa fajlovima. preko dosovog interepta..I ako nije kako to da uradim preko BIOS-a..posto nemam potpunu dokumentaciju, a davno je bilo kada sam se zezao sa time..:) Raven.
asembler.339 banga, -> #338, raven
> Da li neko zna da li je moguce da kada se nakacim na neki > hardverski interapt, na primer tastaturu (09h) da li je moguce > pod dosom otvoriti odnosno uopste raditi sa fajlovima. preko > dosovog Odgovor je da, ali nije jednostavno. Skini za početak napr. dos\prog\asm\tbones07.zip pa prouči probleme. Ne sećam se da li u "kosturu" ima i rad sa fajlovima, ali za početak prvo savladaj ovo. A kod rada sa fajlovima imaš dodatni tajming problem jer ne možeš da čučiš u svom interptu koliko ti hoćeš
asembler.340 destructor,
Nije striktno asembler, ali tu je negde ... Znaci: Potreban mi je algoritam za generisanje slucajnih brojeva, koji se moze relativno kratko kodirati u asembleru (brzina je dobrodosla), a da ima neki pristojan period. Eto .. toliko
asembler.341 obren, -> #340, destructor
> Znaci: Potreban mi je algoritam za generisanje slucajnih > brojeva, koji se moze relativno kratko kodirati u asembleru > (brzina je dobrodosla), a da ima neki pristojan period. Evo ti sors rand() funkcije iz Borland C-a, lako ćeš ga prepevati na ASM. Nije neki kvalitet (školski primer random generatora) ali je jako brzo i jednostavno za kodiranje... ------------------ cut here ------------------ #define MULTIPLIER 0x015a4e35L #define INCREMENT 1 static long Seed = 1; void srand(unsigned seed) { Seed = seed; } int rand(void) { Seed = MULTIPLIER*Seed + INCREMENT; return((int)(Seed >> 16) & 0x7fff); } ------------------ cut here ------------------ Ako ti treba surovi kvalitet ;) a ne brzina, onda pogledaj sors vezan uz poruku, tvrde da je najbolji poznati RND generator (čak ako i nije najbolji, jako je kvalitetan). best_rnd.c
asembler.342 jjerry,
Hi, Kako da pomocu funkcije 02h interapta 21h odstampam dvocifren broj.. (Podsecam da je to funkcija koja trazi ASCII scan code karaktera u DL-u).Pomislio sam da rastavljam cifre sa npr. broj je ab a = int(ab / 10) ; b = ab - 10 * b pa onda da ih printujem svaku pojedinacno,ako ima neko resenje molio bih da posalje i kratak sors..Makar samo principe. Hvala !
asembler.343 obren, -> #342, jjerry
> Kako da pomocu funkcije 02h interapta 21h odstampam dvocifren broj.. > (Podsecam da je to funkcija koja trazi ASCII scan code karaktera u > DL-u). Pomislio sam da rastavljam cifre sa npr. broj je ab > a = int(ab / 10) ; b = ab - 10 * b > pa onda da ih printujem svaku pojedinacno, ako ima neko resenje > molio bih da posalje i kratak sors. Za tako nešto se može iskoristiti instrukcija AAM koja radi upravo ono što ti treba: AH = AL div 10 AL = AL mod 10 Znači, stavi broj u AL i izvrši instrukciju AAM, nakon toga imaš u AH cifre desetica a u AL cifre jedinica. Cela sekvenca bi bila otprilike: mov al, 21 aam ; sada je ah=broj/10, al=broj%10 mov dl, ah ; treba prvo odštampati cifre desetica mov dh, al ; pa cifre jedinica add dx, 3030h ; dodaj i višem i nižem bajtu po ASCII kod nule ('0') mov ah, 02h ; DOS funkcija 02h, character output int 21h xchg dl, dh ; sad nam trebaju jedinice koje su u ah int 21h ; ah=2 iz prethodnog poziva
asembler.344 jjerry, -> #343, obren
Hvala ti,otprilike sam na to mislio,ali sam nesto pokusavao sa IDIV pa IMUL..Za ovo AAM nisam znao.. Jos jednom 10X !!!
asembler.345 vector,
U pitanju je A86 shareware assembler. Ukoliko postoji greska u izvornom kodu, program (A86) pri kompajliranju nece ispisati na ekran o cemu se radi, vec ce sve podatke o greskama uneti u sam izvorni fajl, sto je vrlo iritirajuce ukoliko je program iole veci. Ja bih hteo da mi program podatke o greskama ispisuje na ekran, a ne u izvorni fajl. Da li je to uopste moguce? (mozda preko nekog svica?)
asembler.346 jjerry,
E ljudi,evo vam jedan programcic koji testira Trident SVGA cip. Pa,ko ima Tridentove kartice..neka proveri,please... Bacite na mail sta vam je rek'o :) Poz. trident.exe
asembler.347 obren, -> #345, vector
> U pitanju je A86 shareware assembler. Ukoliko postoji greska u izvornom > kodu, program (A86) pri kompajliranju nece ispisati na ekran o cemu se > radi, vec ce sve podatke o greskama uneti u sam izvorni fajl, sto je vrlo > iritirajuce ukoliko je program iole veci. Zaista bi bilo lepo da poruke o grešci ispisuje _i_ na ekran, ali mislim da je ono što on radi jako korisno, pošto ćeš u slučaju greške svakako ponovo ulaziti u editor. U tom slučaju samo ispraviš grešku a njegovo upozorenje na tom mestu možeš slobodno da ostaviš - automatski će ga izbaciti ako se greška više ne javlja pri novom prevođenju. > Ja bih hteo da mi program podatke o greskama ispisuje na ekran, a ne u > izvorni fajl. Da li je to uopste moguce? (mozda preko nekog svica?) Mislim da nema načina... :(
asembler.348 vector, -> #347, obren
Ů▄▀Ţ Zaista bi bilo lepo da poruke o gresci ispisuje _i_ na ekran, ali Ů▄▀Ţ mislim da je ono sto on radi jako korisno, posto ces u slucaju greske Ů▄▀Ţ svakako ponovo ulaziti u editor. U tom slucaju samo ispravis gresku a Ů▄▀Ţ njegovo Jeste korisno, ali sta raditi u slucaju da sors programa zauzima 100K ili vise? Traziti preko editora znak '~' cime A86 obelezava gresku u sorsu? :)
asembler.349 space.ace, -> #345, vector
> Ja bih hteo da mi program podatke o greskama ispisuje na ekran, a ne u > izvorni fajl. Da li je to uopste moguce? (mozda preko nekog svica?) Ne verujem da je slično moguće, ali je u izvornom kodu lakše naći grešku ako u u njemu stoji podatak (pointer) na grešku. Ako ispraviš grešku i ponovo propustiš kroz a86, te greške će nestati iz izvornog koda a kod će se lepo kompajlirati. So, možda je ovako i lakše.
asembler.350 obren, -> #348, vector
> Jeste korisno, ali sta raditi u slucaju da sors programa zauzima 100K ili > vise? Traziti preko editora znak '~' cime A86 obelezava gresku u sorsu? :) A kako bi i inače tražio grešku da ti kod tolikog programa napiše nešto poput: Error trt-mrt, line 89 Error štuc-muc, line 1230 Error ovo-ono, line 6843 . . . Jel onda beležiš na papir brojeve linija gde su bile greške pa onda ideš kroz editor pa trebiš? ;) Po meni je jako dobro što u sorsu naznači greške jer ionako ti je cilj valjda da te greške ispraviš. U tom slučaju imaš sva mesta obeležena i čas posla se ispopravlja šta ne valja. Kod TASM-a nikad ne mogu da zapamtim više od 2-3 prijavljene greške u jednom cugu, već moram prvo njih da ispravim pa ponovo TASM, pa ponovo par ispravljenih grešaka... Naravno ima i specijalizovanih editora (Qedit i sl.) koji mogu da se konfigurišu tako da na osnovu outputa TASM-a omoguće skakanje na greške, ali na kraju ipak ispada lakše da ti je sve označeno u sorsu nego da skakućeš između Error prozora u editoru i samog ASM sorsa. Naravno, kao što sam već i rekao, zgodno bi bilo da se vide greške _i_ na konzoli pored označavanja u sorsu, ali generalno mi se sviđa ta ideja sa markiranjem, pošto A86 ionako automatski poizbacuje ta upozorenja ako više nema grešaka na označenim mestima.
asembler.351 firus, -> #345, vector
> U pitanju je A86 shareware assembler. Ukoliko postoji greska u > ... > ... > Ja bih hteo da mi program podatke o greskama ispisuje na ekran, > a ne u izvorni fajl. Da li je to uopste moguce? (mozda preko > nekog svica?) A da ti to lepo zapakuješ i pošalješ pa da ga "upgrade-ujemo" ?!
asembler.352 zdravkod,
Kako da kazem CD-u PLAY ??? Koji interrupt gde sta kako ??? jel zna neko ..
asembler.353 van.gog,
Ako bi neko bio ljubazan da mi napshe proceduru za startovanje nekog programa (EXEC proceduru) odnosno kako se koristi fia. 4B (int21) i da li ja treba ta pravim PSP ili je to ukljuceno u samu 4B fiu. ... i jos ... kako odrediti vrednosti za ss,cs i ostale registre koji se prosledju u parametar bloku za isto-pomenutu fiu. (NEMOJTE DA SALJETE ISECKE IZ HELPPC-a i sl.) Molim za malo koda ;> VAN.GOG!
asembler.354 bokir, -> #353, van.gog
> Ako bi neko bio ljubazan da mi napshe proceduru za startovanje > nekog programa (EXEC proceduru) odnosno kako se koristi fia. Evo malo koda :) exec.asm
asembler.355 vector,
A86 macro assembler, V4.02 updated with INCLUDE files, listings, no limit on size of source files, fwd refs in complex expressions, END operand, default ORG END in DATA SEGMENT, and more! Contains info about A386/D386. From Eric Isaacson Software. a86v402.zip
asembler.356 vector,
D86 debugger, V4.02, updated with keystroke scripts, macro keys, Undo command, and file copy and delete. Contains info about A386/D386. From Eric Isaacson Software. d86v402.zip
asembler.357 vector,
Predlazem da se stare verzije A86 shareware asemblera obrisu iz direktorijuma i da se umesto njih stavi nova (v4.02). :)
asembler.358 soul,
Enter: East Gate. Intro no. 000. Hope to see you soon. egate0.zip
asembler.359 van.gog,
Aloha ... Evo ovako ... malo sam modifikovao onaj exec prog od pre par poruka u cilju jelte' experimentisanja ... dakle poziva se sa ah,4b (exec) ali sa AL,1 (create PSP, load but not EXEC) a kasnije kad izvucem CS i IP iz param bloka zajedno sa SS i SP i stavim na stack (CS i IP), uradim jedno RETF (JUMP FAR) on pozove prog koji treba da se startuje al kaze nema MEM?!? E sad ... kako to da resim ??? (promnenite samo ime programa koji se pokrece) e.asm
asembler.360 van.gog,
Aloha. Evo nadjoh o CD-u napokon. Ali (eh) problem. Prog je u asm-u al vezan CPP-om pa evo prosledjujem source. Ako neko pokrene CD-ovim (ili necim drugim) neka mi se obavezno javi ... thanx cd.rar
asembler.361 jjerry,
E,'ajde nek mi neko napise funkciju za dobijanje copyright stringa za MS MOUSE u C++-u..Samo cu vam reci da je INT 33h,f-ja AX=004Dh i da vraca copyright string u ES:DI..Meni vraca djubre,e sad ili ja nemam dobar drajver,ili je kod los :) Poz.
asembler.362 jjerry,
Cemu konkretno sluze [] zagrade oko imena nekih promenljivih ili registara kao npr. [ES:DX],[blabla] itd. ?
asembler.363 vector, -> #361, jjerry
<--- E,'ajde nek mi neko napise funkciju za dobijanje copyright stringa <--- za MS MOUSE u C++-u..Samo cu vam reci da je INT 33h,f-ja AX=004Dh i <--- da vraca copyright string u ES:DI..Meni vraca djubre,e sad ili ja <--- nemam dobar drajver,ili je kod los :) Kod mene je sadrzaj ES:DI memorijske lokacije pre i posle poziva te funkcije potpuno isti. BTW, odakle ti informacija o toj funkciji? Ni IntrList (v1.2) ni HelpPC (v2.1) nemaju podataka o tome...
asembler.364 stameni, -> #363, vector
>> <--- za MS MOUSE u C++-u..Samo cu vam reci da je INT 33h,f-ja AX=004Dh >> i <--- da vraca copyright string u ES:DI.. >> Kod mene je sadrzaj ES:DI memorijske lokacije pre i posle poziva te >> funkcije potpuno isti. BTW, odakle ti informacija o toj funkciji? >> Ni IntrList (v1.2) ni HelpPC (v2.1) nemaju podataka o tome... Samo da dojavim da je su i kod mene pre i posle poziva funkcije je te lokacije neizmenjene. Štaviše, mislim da se od registara jedino menja IP ;) Drajver za miša je Geniusov, verzija 8.08. Imaš dosta staru IntList, što ponekad može biti prednost, jer je lakše pronaći "pravu stvar" u manjim fajlovima, a kad nađeš, siguran si da će da radi i na DOS-u < 3.00 :) U verziji 4.2 je uredno (reklo bi se) dokumentovana funkcija, nemam pojma što ne radi.
asembler.365 vector, -> #364, stameni
<--- Samo da dojavim da je su i kod mene pre i posle poziva funkcije <--- je te lokacije neizmenjene. Stavise, mislim da se od registara <--- jedino menja IP ;) Drajver za misa je Geniusov, verzija 8.08. Menja se i DI registar, medjutim na ES:DI se nista ne nalazi. :) Takodje imam Geniusov mouse drajver. <--- Imas dosta staru IntList, sto ponekad moze biti prednost, jer Gde naci noviji IntrList? :)
asembler.366 jjerry, -> #363, vector
Hmmm...podatak je iz Ralph-Brownove interrupt liste..evo,lepo pise poziva se sa 004Dh u AX-u i vraca pointer na kopirajt string u ES:DI..Da ti nisi gled'o ES:DX ?
asembler.367 vector, -> #366, jjerry
<--- Hmmm...podatak je iz Ralph-Brownove interrupt liste..evo,lepo pise <--- poziva se sa 004Dh u AX-u i vraca pointer na kopirajt string u <--- ES:DI..Da ti nisi gled'o ES:DX ? Ne, gledao sam ES:DI, bas kako sam i rekao :) BTW, kako gledas te podatke iz njegove interapt liste? Preko tekst editora? Ili imas nesto poput WindowBook programa?
asembler.368 stameni, -> #365, vector
>> Menja se i DI registar, medjutim na ES:DI se nista ne nalazi. :) Šta da kažem, meni ne menja ni DI, a tamo gde pokazuje ES:DI stvarno nema ničeg. >> Gde naci noviji IntrList? :) Ima na Sezamu u dos\prog\info verzije 4.8 i 5.1 (možda i neke novije). However, preporučuju ne bacati ni 1.2, ako već imaš; nije veliko (verovatno), pa dobro dođe ponekad "za prvu pomoć" :)
asembler.369 jjerry, -> #367, vector
JJ=> Ne, gledao sam ES:DI, bas kako sam i rekao :) OK :) JJ=> BTW, kako gledas te podatke iz njegove interapt liste? Preko tekst JJ=> editora? Ili imas nesto poput WindowBook programa? Ne..imas to u DOS\PROG\INFO..ja gledam preko Norton Commandera,svaki ASCII editor ce posluziti :)
asembler.370 stameni, -> #369, jjerry
>> JJ=> BTW, kako gledas te podatke iz njegove interapt liste? Preko >> tekst JJ=> editora? Ili imas nesto poput WindowBook programa? >> >> Ne..imas to u DOS\PROG\INFO..ja gledam preko Norton >> Commandera,svaki ASCII editor ce posluziti :) Trebalo bi da je u arhivama programče koje se zove Intervue, kojim se efikasno mogu pratiti podaci. Ima i programčića (sa sorsovima) koji konvertuju liste u popularne help formate, al' o tome ne znam puno, jer ih ne koristim.
asembler.371 jjerry,
Hmmm..ovde ne pishe za koju verziju drajvera je funkcija,ali ajde da probamo nesto drugo..ovde kaze da f-ja vraca ili string "*** This is Copyright 1983 Microsoft" ili "Copyright 19XX...".Dalje kaze da u Genius verziji 9.06 potpis "KYE" dolazi odmah posle one poruke..Dakle,da saberemo kol'ko su poruke dugacke,uvecamo DI za tol'ko,i ako pise "KYE" onda raaaadiiiiiiii...!! :)) Poz.
asembler.372 vector, -> #368, stameni
<--- >> Gde naci noviji IntrList? :) <--- <--- Ima na Sezamu u dos\prog\info verzije 4.8 i 5.1 (mozda i neke <--- novije). However, preporucuju ne bacati ni 1.2, ako vec imas; nije <--- veliko (verovatno), pa dobro dode ponekad "za prvu pomoc" :) Pod ovim 'noviji IntrList' sam mislio na program kompanije WindowBook, a to je neki hipertekst reader Ralf Brownove liste interapta. :)
asembler.373 vector, -> #370, stameni
<--- Trebalo bi da je u arhivama programce koje se zove Intervue, <--- kojim se efikasno mogu pratiti podaci. <--- Ima i programcica (sa sorsovima) koji konvertuju liste u <--- popularne help formate, al' o tome ne znam puno, jer ih ne <--- koristim. Ok, presnimio sam INTER51x.ZIP fajlove i otpakovao ih. Zatim sam startovao IL2HDK program i konvertovao listu u nekakav .hdf fajl. Sta dalje? U inter51*.zip arhivama nema programa koji cita takve .hdf fajlove, dok u uputstvu pise da se oni moraju kompajlirati pomocu nekog programa (ne secam se tacnog imena). Ima li resenja? (u INTER48E.ZIP arhivi se nalazi nekoliko programa koji konvertuju listu u neke help formate, medjutim, to meni nista ne koristi jer nemam nijedan program koji cita to) Moze li se negde naci .NG baza ove interrupt liste?
asembler.374 biber, -> #355, vector
> A86 macro assembler, V4.02 updated > with INCLUDE files, listings, no limit > on size of source files, fwd refs in Da li neko ima A386 (verziju ovog asemblera za 386+ procesore)?
asembler.375 biber, -> #345, vector
> U pitanju je A86 shareware assembler. Ukoliko postoji greska u izvornom > kodu, program (A86) pri kompajliranju nece ispisati na ekran o cemu se > radi, vec ce sve podatke o greskama uneti u sam izvorni fajl, sto je vrlo > iritirajuce ukoliko je program iole veci. > > Ja bih hteo da mi program podatke o greskama ispisuje na ekran, a ne u > izvorni fajl. Da li je to uopste moguce? (mozda preko nekog svica?) Postoji svic za tako nesto, koga naravno ne znam napamet, a i nisam ga nesto ni koristio. Ipak je dobra ideja da se greske upisu u sors. U svakom slucaju procitaj uputstvo koje ide uz program u obliku txt fajla i naci ces svic.
asembler.376 stameni, -> #372, vector
>> Pod ovim 'noviji IntrList' sam mislio na program kompanije WindowBook, >> a to je neki hipertekst reader Ralf Brownove liste interapta. :) Ja sam mislio na noviju *bazu*. No, kakav je taj WindowBook? Ako valja i ako je public, šta misliš da ga okačiš file moderatorima?
asembler.377 stameni, -> #373, vector
>> Ok, presnimio sam INTER51x.ZIP fajlove i otpakovao ih. Zatim sam >> startovao IL2HDK program i konvertovao listu u nekakav .hdf fajl. >> Sta dalje? U inter51*.zip arhivama nema programa koji cita takve >> .hdf fajlove, dok u uputstvu pise da se oni moraju kompajlirati >> pomocu nekog programa (ne secam se tacnog imena). Ima li resenja? Priložen je progam INTERVUE i jedan batch (valjda beše IV.BAT) koji ga instalira i kasnije poziva ako te mrzi da kucaš celo INTERVUE. Ja koristim (isključivo) njega, jer donedavno nisam imao te... transformere ;) a u međuvremenu sam navikao na dotičnog. Nema source. >> Moze li se negde naci .NG baza ove interrupt liste? To bi bila prava stvar. Ako imaš NG compiler (il' kako se već zove), imaš uz inter???.zip program kojim možeš da praviš takve fajlove.
asembler.378 vector, -> #374, biber
<--- Da li neko ima A386 (verziju ovog asemblera za 386+ procesore)? Koliko sam shvatio iz uputstva A86 (v4.02), test verzija A386 se moze dobiti jedino registracijom ovog A86 asemblera.
asembler.379 vector, -> #376, stameni
<--- Ja sam mislio na noviju *bazu*. No, kakav je taj WindowBook? <--- Ako valja i ako je public, sta mislis da ga okacis file <--- moderatorima? IntrList (WB) nije ni shareware ni public domain. :) Cini ga 1 .exe fajl velicine jednog megabajta. Podaci su dosta matori, medjutim, program je zaista odlican. Uz poruku sam prikacio nekoliko slika iz programa. :) d00.arj
asembler.380 zeljkoj, -> #373, vector
> Moze li se negde naci .NG baza ove interrupt liste? Ja sam celu interapt listu konvertovato u Windows .HLP format (pomoću priloženog programa), još 1995. (verzija 4.8).
asembler.381 jjerry,
100% vam je poznata 0Ah f-ja interapta 33h za definisanje softverskog (i hardverskog) text kursora..Fora je sto u CX treba da se stavi AND maska,a u DX XOR maska kursora..Svasta sam radio al' nikako da dobijem "dobre" kursore :( Ima l' neko resenje..i ako moze format tih maski. Pozdrav !
asembler.382 stameni, -> #379, vector
>> <--- Ja sam mislio na noviju *bazu*. No, kakav je taj WindowBook? >> IntrList (WB) nije ni shareware ni public domain. :) Sad je jasnije, sve vreme sam mislio da koristiš staaaru verziju Interrupt Lists Ralfa Browna. Šta da radiš kad se slično zovu...
asembler.383 vector, -> #382, stameni
<--- Sad je jasnije, sve vreme sam mislio da koristis staaaru <--- verziju Interrupt Lists Ralfa Browna. Sta da radis kad se slicno <--- zovu... To i jeste stara verzija njegove liste, medjutim, upakovana je u jedan program u kome sve gledas pomocu hiperteksta, a taj program kompanije WindowBook Inc. se zove IntrList. :)
asembler.384 jjerry,
Evo...bavio sam se malo izvlacenjem stringova iz memorije,pa evo jednog programceta koje stampta MS-DOS version string..Ja imam MS-DOS 6.22 (pod Win95 7.0) ali pre nego sto ga startujete,proverite lokacije od 9000:CF90h do 9000:D004h P.S Sasvim slucajno sam pronasao da tu stoji DOS string uz pomoc nekog pretrazivaca memorije.. :)) dos_str.exe
asembler.385 jjerry,
E pa ljudi,konacno sam uspeo.. Funkcija 004Dh je sasvim tacna i pravilno dokumentovana ! Kao sto je i pisalo..posle poziva te f-je,u ES:DI se nalazi copyright string za microsoft.A u Genius mouse 9.06 (moja verzija) potpis "KYE" zaista odmah prati pomenuti string.. Evo vam EXE-fajla..ako treba sors (kao dokaz :> poslacu ;) Poz. mousestr.exe
asembler.386 jjerry,
Primeticete da su duzine EXE programa koji trazi MS-DOS string i Mouse copyright string jednake :) Ne znam zasto,ali u oba slucaja je duzina jednaka 537 bajtova..Cak je i sadrzaj fajla vrlo slican :)
asembler.388 vector, -> #386, jjerry
<--- Primeticete da su duzine EXE programa koji trazi MS-DOS string i <--- Mouse copyright string jednake :) Ne znam zasto,ali u oba slucaja <--- je duzina jednaka 537 bajtova..Cak je i sadrzaj fajla vrlo slican :) Velicina prvog fajla je 573, a drugog 537 bajtova. Nisu bas jednaki ;)
asembler.389 vector, -> #385, jjerry
<--- E pa ljudi,konacno sam uspeo.. <--- Funkcija 004Dh je sasvim tacna i pravilno dokumentovana ! <--- Kao sto je i pisalo..posle poziva te f-je,u ES:DI se nalazi <--- copyright string za microsoft.A u Genius mouse 9.06 (moja verzija) <--- potpis "KYE" zaista odmah prati pomenuti string.. <--- Evo vam EXE-fajla..ako treba sors (kao dokaz :> poslacu ;) Ovaj .exe radi lepo, zaista je pisalo '*** This is Copyright 1983 Microsoft ***'. Medjutim, ne razumem kako prvi put to nisam video. Siguran sam da sam startovao debug, ukucao niz komandi: a 100 mov al, 4d int 33 ... i posle trejsovanja te 2 instrukcije ukucao: d es:2025, i apsolutno sam siguran da se nista nije pojavilo osim djubreta ;) Medjutim, sad lepo radi? Hmm, ..., ajde ipak, ;) mozda sam stavio 'd ds:2025' ili tako nesto... anyway, evo A86 sorsa koji radi posao... mouse.arj
asembler.390 jjerry,
Evo vam onaj sors za MSMOUSE Copyright string.Ovaj put je TASM verzija ;) mousestr.asm
asembler.391 jjerry,
Evo imam par pitanja ovde... Dakle..Kad se program startuje (prepusti se njemu kontrola) DS i ES se menjaju i pokazuju na pocetak programovog PSP-a (DS:0000 i ES:0000). Konkretno,kada trazim neki fajl,i da bi video sta sam nasao moram da pregledam DTA ? I da li se taj DTA ;) uvek nalazi na ofsetu 80h od pocetka PSP-a ? P.S Ako bi mogao neko strucan za tu oblast :) da mi posalje jedan primer,cisto radi ilustracije :)
asembler.392 jjerry,
Ajmo..sta je to FCB i cemu sluzi ? Nego..kad pozovem f-ju 11h\21h (Find 1st file - FCB) jel' treba da sacekam neko vreme ili je vec tu rezultat u AL a DTA pun ? Koja je procedura za trazenje fajlova ? Nema sanse da je samo "gola" funkcija :) Pozoves i - eto ti :)
asembler.393 jjerry,
Evo vam jedno programche za koje sumnjam da radi,iako ne daje neke bezveze rezultate..Dakle,ja na pocetku f-jom 1A\21 stavim DTA na neku bezveze adresu,onda izvucem tu istu adresu i uporedim je sa PSP:80h i on uporno tvrdi da je DTA bas tu (??!) Ko zna gde gresim nek' javi :) dta.asm
asembler.394 jjerry, -> #389, vector
JJ=>... i posle trejsovanja te 2 instrukcije ukucao: d es:2025, i apsolutno ^^^^ Sto bas 2025 ? Naso si da je u DI bilo 2025 ??
asembler.395 vector, -> #394, jjerry
Ů▀Ţ Sto bas 2025 ? Naso si da je u DI bilo 2025 ?? Ta funkcija mi obicno vraca 2025h u DI. :)
asembler.396 space.ace, -> #392, jjerry
> Ajmo..sta je to FCB i cemu sluzi ? Nego..kad pozovem f-ju 11h\21h To je File Control Block, zaostalo još od DOS-a 1 :). Bolje koristi 4EH (findfirst) i 4FH (findnext), samo u DS:DX strpaš pointer na ime fajla i gotovo. Za detalje oko atributa (CX) pogledaj neki help. > tu rezultat u AL a DTA pun ? Koja je procedura za trazenje fajlova ? > Nema sanse da je samo "gola" funkcija :) Pozoves i - eto ti :) To je u stvari skup funkcija, i to findfirst i findnext, a rade na sledećem principu: proveri prvi fajl da li odgovara kriterijumu (findfirst) ako ne odgovara, proveri sledeći (findnext), itd.
asembler.397 sigmund,
Vidi poruku u cccc 9.434
asembler.398 mdimitrijevic, -> #391, jjerry
> Dakle..Kad se program startuje (prepusti se njemu kontrola) DS i ES > se menjaju i pokazuju na pocetak programovog PSP-a (DS:0000 i ES:0000). > Konkretno,kada trazim neki fajl,i da bi video sta sam nasao moram da > pregledam DTA ? I da li se taj DTA ;) uvek nalazi na ofsetu 80h od > pocetka PSP-a ? DTA se skoro uvek nalazi na ofsetu 80h. Možeš postaviti svoju adresu za DTA, isto tako možeš preuzeti trenutnu adresu DTA. Preuzimanje adrese DTA: MOV AH,2Fh INT 21h ES:BX - adresa DTA Postavljanje adrese DTA: MOV AH,1Ah DS:DX - adresa nove DTA INT 21h Pozdrav, Marjan
asembler.399 bokir,
Evo jednog shareware asemblera: CrossFire Assembler xfire510.zip
asembler.400 vector, -> #360, van.gog
> Ako neko pokrene CD-ovim (ili necim drugim) neka mi se obavezno > javi ... thanx Nisam pokrenuo, ali sam iskopao ovaj FAQ o programiranju CD-ROMova iz ASM Snippets arhive. Sadrzaj fajla: Section 0 - Availability 0.01. How can I get the latest copy of this FAQ? Section 1 - MSCDEX Status 1.01. How do I know if MSCDEX is installed? 1.02. How do I determine the MSCDEX version? Section 2 - CD-ROM Existence 2.01. How many CD-ROMs are present? 2.02. Which drives are CD-ROMs? 2.03. How do I get the name of the CD-ROM device driver? Section 3 - Drive Interface 3.01. How do I open the door? 3.02. How do I close the door? 3.03. How do I unlock the door? 3.04. How do I lock the door? 3.05. How do I reset the drive? 3.06. How do I get drive status? Section 4 - Drive Capacity 4.01. What sector size is supported? 4.02. How many sectors are on the disk? 4.03. How much data is on the disk? Section 5 - Volume Table of Contents 5.01. How do I get the abstract file name? 5.02. How do I get the bibliography file name? 5.03. How do I get the copyright file name? 5.04. How do I read the Volume Table of Contents (VTOC)? Section 6 - Audio 6.01. How do I find out how many tracks are on a CD? 6.02. What are Red Book and HSG formats? 6.03. How can I determine where a particular track starts? 6.04. How do I play audio? 6.05. How do I pause audio playback? 6.06. How do I resume audio playback? cdromfaq.arj
asembler.401 vector,
Ajde ovako. Imam fajl XYZ.DAT i od njega treba da napravim fajl XYZ.DB koji u sebi sadrzi nesto ovako: db 04C,02F,001,010,0FF,0FF,013,064,0AB,008,099,0AC,0BC,0F3,0EF,085,021 db 027,0A3,08F,0C2,038,0D5,098,057,018,024,063,0EE,075,09A,048,053,0FF Naravno, kao sto se i moze pretpostaviti, bajt 4C (hex) je prvi bajt ulaznog fajla XYZ.DAT, 2F je drugi bajt, 01 je treci, itd, itd. Znaci, treba mi nesto sto ce fajlove da mi prebacuje u DB format. Znam da zeljeni fajl mogu da linkujem sa sorsom svog programa, medjutim, treba mi bas ovo. Rekoh da se ne mucim - ovako nesto sigurno postoji, valjda je nekom zatrebalo? :)
asembler.403 zeljkoj, -> #401, vector
> Ajde ovako. Imam fajl XYZ.DAT i od njega treba da napravim fajl > XYZ.DB koji u sebi sadrzi nesto ovako: Evo, napisao sam programčić koji radi upravo to. Iz komandne linije uzima ime fajla koji treba obraditi, a izlaz ispisuje na ekran (možeš ga usmeriti u fajl pomoću > ). Prilično je spor, jer čita bajt po bajt, ali valjda će poslužiti... file2db.exe
asembler.404 vector, -> #403, zeljkoj
> Evo, napisao sam programcic koji radi upravo to. Iz komandne linije uzima > ime fajla koji treba obraditi, a izlaz ispisuje na ekran (mozes ga > usmeriti u fajl pomocu > ). Prilicno je spor, jer cita bajt po bajt, ali > valjda ce posluziti... Program je OK, samo mi treba jos nesto: obavezan je karakter '0' pre svakog bajta, dok 'h' (posle bajta) nije potreban, zbog toga sto A86 kompajler hex brojeve obelezava nulom ispred broja. Pored toga, trebalo bi samo smanjiti broj tih bajtova u jednom redu sa 20 na 15. :)
asembler.405 firus, -> #401, vector
> Ajde ovako. Imam fajl XYZ.DAT i od njega treba da napravim fajl > XYZ.DB koji u sebi sadrzi nesto ovako: Seo sam i napisao jedan takav utility. Šaljem ga prikačen uz poruku. Poziva se iz komandne linije sa: DB ime_ulazne_datoteke širina [ime_labele] gde je širina broj elemenata koji slede iza DB, a opcioni parametar labela je ime labele koja se daje tome DB bloku. Kao rezultat rada dobijaš .INC datoteku (valjda je neka konvencija da se include datoteke za asembler (prez)imenuju sa .INC B). BTW, tekst koji se ispisuje je na engleskom, jer sam nekako navikao da utility-je tako radim (ko zna, možda dospe i u inostranstvo, pa da se ne pate sa srpskim ;) P.S. Eh, da, program je freeware na nivou sorsa. db.zip
asembler.406 vector, -> #405, firus
> Seo sam i napisao jedan takav utility. Saljem ga prikacen uz > poruku. Poziva se iz komandne linije sa: Thx, program je OK. :)
asembler.407 mdimitrijevic, -> #404, vector
> Program je OK, samo mi treba jos nesto: obavezan je karakter '0' pre > svakog bajta, dok 'h' (posle bajta) nije potreban, zbog toga sto A86 > kompajler hex brojeve obelezava nulom ispred broja. Pored toga, trebalo bi > samo smanjiti broj tih bajtova u jednom redu sa 20 na 15. :) Evo ti mog programa BIN2TXT koji sam napisao još 1995 za svoje potrebe. Pruža ti mogućnost podešavanja ispisa BYTE-a, WORD-a i DWORD-a, takođe biraš kolika je tabulacija i broj podataka u redu. Postoji i mogućnost izbora od kog bajta iz datoteke da počne sa čitanjem itd. Probaj, ovo će ti verovatno rešiti problem. Naravno moras preusmeriti ispis u datoteku sa '>'. bin2txt.exe
asembler.408 vector,
Koji je najbrzi nacin za prenos nekoliko K sa jedne memorijske lokacije na drugu? Da li je u pitanju `rep movsw'?
asembler.409 mdimitrijevic, -> #408, vector
> Koji je najbrzi nacin za prenos nekoliko K sa jedne memorijske lokacije > na drugu? Da li je u pitanju `rep movsw'? REP MOVSD ukoliko koristiš 386+ procesor. Inače REP MOVSW. Moguće je ponekad ostvariti veće brzine ukoliko koristiš STOSD i petlju sa CX, ali to zavisi od onoga što pokušavaš da uradiš. Jer ukoliko radiš filovanje 3D objekta može se desiti da ti adresa koju puniš sa REP MOVSB bude na neparnom broju u kom slučaju imaš malo usporenje itd. A i ovo zavisi da li se radi o 386+ ili o Pentiumu. Takođe treba se osloniti na to da adresa rutine bude na parnoj adresi jer će u slučaju ulaska u keš procesora mnogo brže da se izvršava. Ovo se sve odnosi na pisanje DEMO-a gde ti je važna brzina do maximuma. Takođe sam na ovaj način pisao jedan komercijalni program za puštanje animacija gde je trebalo puštati animacije u visokoj rezoluciji (VESA 2.0) uz najmanje moguće usporenje tj. uz najveću moguću brzinu (uz korišćenje linearne memorije VESA 2.0).
asembler.410 jjerry, -> #409, mdimitrijevic
>>Jer ukoliko radis filovanje 3D objekta >>moze se desiti da ti adresa koju punis sa REP MOVSB bude na >>neparnom broju u kom slucaju imas malo usporenje itd. Pojasni malo :) posto sam video mnogo onih demo-a koje spominjesh sa interesantnim 3D objektima,pa me malo interesuje :) Pozdrav! §JţÔÔśř
asembler.411 mdimitrijevic, -> #410, jjerry
>>> Jer ukoliko radis filovanje 3D objekta >>> moze se desiti da ti adresa koju punis sa REP MOVSB bude na >>> neparnom broju u kom slucaju imas malo usporenje itd. > > Pojasni malo :) posto sam video mnogo onih demo-a koje spominjesh > sa interesantnim 3D objektima,pa me malo interesuje :) Pojasni šta da pojasnim :) Interesuje te kako se radi filovanje 3D poligona ili uopšte kako se rade kompletne rutine ? Što se onog gore tiče (citiranog), radi se o tome da umesto MOVSB treba da piše STOSB (lapsus tastaturis) i o tome da se parnim adresama brže pristupa tako da ako pišeš brzu rutinu za 3D filovanje uradiš ALIGN na parnu adresu tako će i sama petlja biti mnogo brža a i deo za filovanje može da upadne ceo u interni keš (ovo se najviše odnosi na Pentium, ali se ovakve optimizacije rade od 386 do Pentiuma). Takođe se rutine pišu tako da se podese na odgovarajući način da bi keš procesora u najvećem broju pristupa nalazio baš onu naredbu koju treba. To mi je malo teško da objasnim. Itd....
asembler.412 jjerry, -> #411, mdimitrijevic
>>> Pojasni malo :) posto sam video mnogo onih demo-a koje spominjesh >>> sa interesantnim 3D objektima,pa me malo interesuje :) >> >> Pojasni sta da pojasnim :) Interesuje te kako se radi >>filovanje 3D poligona ili uopste kako se rade kompletne rutine ? Ma samo filovanje 3D poligona...izgleda mnogo interesantno,posto nikad nisam pravio 3D animaciju svojim rendererom :) >> Sto se onog gore tice (citiranog), radi se o tome da umesto >>MOVSB treba da pise STOSB (lapsus tastaturis) i o tome da se parnim >>adresama brze pristupa Razumelo se :) Btw. zashto se parnim adresama brzhe pristupa ? Pozdrav! §JţÔÔśř