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.1 ppekovic,
Volite li assembler? da? ovo je tema za Vas. Paya
asembler.2 ciki,
Ho! Ajde pogledajte ovo sto vam saljem.Treba da mi izda najmanji clan niza ali nece ;(((. Pozdrav Ciki! ciki.asm
asembler.3 .sima,
═╣ Ajde pogledajte ovo sto vam saljem.Treba da mi izda najmanji clan Evo pa ako ti nešto nije jasno javi mi na mail ciki.asm
asembler.4 mivel,
Mozda ce ovo pomoci... cikiii.zip
asembler.5 mstanic,
>> Ajde pogledajte ovo sto vam saljem.Treba da mi izda >> najmanji clan niza ali nece ;(((. POR1 DB 'NAJMANJI BROJ JE ' ovde si zaboravio terminator stringa '$'za funkciju 09h K1 DB 1 ovo ti je višak NIZ DB 1,2,3,5,2,3,5,1,3,0 definisao si niz bajtova a kasnije porediš reči, pogotovo je važna poslednja nula. Ako imaš mnogo sreće da ti asembler iza nje ubaci još jednu nulu biće dobro, ali ako bude bilo šta drugo neće valjati. ovde ti nedostaje nešto kao mov dx, seg NIZ mov ds,dx MOV SI, OFFSET NIZ MOV AX,[SI] PETLJA: INC SI ;UVECAJ BROJAC ZA 1 pocevsi od 2 MOV CX,[SI] JCXZ KRAJ ako je u CX nula (izgleda da si mislio da to bude terminator niza koji pretražuješ) program se izvršava od labele KRAJ što znači da će u regularnim uslovima rezultat uvek biti nula CMP CX,AX JS MINIM JMP PETLJA MINIM: XCHG AX,CX JMP PETLJA KRAJ: MOV DI, OFFSET MIN MOV [DI],CX ovde primeti da ne bi bilo loše da ti NIZ bude u asci-ju ili da ga ovde pretvoriš u asci. Nisam siguran ali mi se čini da si početnik sa asemblerom (inkrementiraš SI za jedan, a potom sa te adrese podatak prenosiš u CX, razumeš na šta mislim). Sa tim sam probao i dobio neke rezultate ali to treba doterati. Ako i dalje imaš problema opiši PROBLEM pre nego li postaviš pitanje.
asembler.6 ciki,
>**> >> Ajde pogledajte ovo sto vam saljem.Treba da mi izda >**> >> najmanji clan niza ali nece ;(((. >**> >**> POR1 DB 'NAJMANJI BROJ JE ' >**> ovde si zaboravio terminator stringa '$'za funkciju 09h To je Ok. Vidis ja sam program napravio, pa ga istampao, pa obrisao, pa ga prekucao bez "$" >**> NIZ DB 1,2,3,5,2,3,5,1,3,0 >**> definisao si niz bajtova a kasnije porediš reči, >**> pogotovo je važna poslednja nula. Ako imaš mnogo sreće >**> da ti asembler iza nje ubaci još jednu nulu biće dobro, >**> ali ako bude bilo šta drugo neće valjati. >**> >**> ovde ti nedostaje nešto kao >**> mov dx, seg NIZ >**> mov ds,dx >**> >**> MOV SI, OFFSET NIZ >**> MOV AX,ŠSIĆ >**> PETLJA: INC SI ;UVECAJ BROJAC ZA 1 pocevsi od >**> 2 MOV CX,ŠSIĆ >**> JCXZ KRAJ >**> ako je u CX nula (izgleda da si mislio da to bude >**> terminator niza koji pretražuješ) program se izvršava >**> od labele KRAJ što znači da će u regularnim uslovima >**> rezultat uvek biti nula >**> .................................... >**> ovde primeti da ne bi bilo loše da ti NIZ bude u >**> asci-ju ili da ga ovde pretvoriš u asci. Pa fora je u tome i bila da mi na CX bude kraj niza. Inace ne zameri previse na velikim glupostima koje sam nabacao u onaj listing, stvar sam radio u 4:00am pa mi se vrlo spavalo(da ti ne pricam da mi racunarstvo predaje profesor matematike koji je silom prilika "regrutovan" za ovo sta je sada.) >**> Nisam siguran ali mi se čini da si početnik sa >**> asemblerom (inkrementiraš SI za jedan, a potom sa te >**> adrese podatak prenosiš u CX, razumeš na šta mislim). U pravu si da sam totalni pocetnik, ali ko radi taj i gresi ;> >**> Ako i dalje imaš problema opiši PROBLEM pre nego li >**> postaviš pitanje. Veruj mi da ga mogu opisati ne bih ga ni slao i vas mucio, vec bih pokusao i verovatno uradio sam! KORISTIM PRILIKU DA SE ZAHVALIM SVIMA KOJI SU MI POMOGLI! P.S. PROGRAM SAM SAM URADIO IDUCEG JUTRA ZA cca 30MIN,POSTO SAM SE UDUBIO U CITANJE KNJIGE. POZRAV CIKI!
asembler.7 robert,
Drug me pitao sledeće: Šta se dešava pri upotrebi instrukcija SUB i CMP i NEG na neoznačene cele brojeve? Da li se uvek pretvaraju u komplement 2 (mislim da to važi sigurno za NEG instrukciju) ili ALU nekako "zna" da su u pitanju neoznačeni (unsigned) brojevi. Konkretno, šta se TAžNO dešava u procesoru 8086 kod sl. instrukcije: SUB AX, BX ; AX = 1111000000000000 (61440) ; BX = 1110000000000000 (57344) Prijatelj kaže da ima dve knjige o ASM-u ali nigde nije mogao da nađe ništa konkretno o proceduri za neoznačene brojeve. Ima samo napomena da postoji neki "fazon" kod tih brojeva (što se oduzimanja i CMP-a tiče).
asembler.8 dejanr,
Mikroprocesor "pojma nema" da li su celi brojevi sa kojim operiše označeni ili neoznačeni, taj znak je samo stvar tumačenja rezultata. Dakle, delovanje je uvek isto, i generišu se carry i overflow flegovi. Ako radiš sa označenim brojevima, u daljim testovima koristiš overflow flag a ako smatraš da su neoznačeni, onda carry. Ovo je malo uprošćeno tumačenje, za više informacija pogledaj recimo tekst o 486 iz prošlih "Računara".
asembler.9 ciki,
Ho! Imam 1 pitanjce. 1. i glavno,i za sada jedino. Ima li neko uradjenu proceduru za deljenje 2 broja na zadati broj decimalnih mesta (1/3=0.33333)? Pozdrav Ciki!
asembler.10 ficus,
ej ja imam nesto mada i taj program nije bas ok ovako program ti tacuna samo za kolicnik manji od 1 ne radi u dosu (pojma nemam zasto i ja sam pocetnik) i zato ga i saljem ranije tj jos ga nisam zavrsio ali ono sto me buni je radi kad ga startujem u td-u tako da ako neko zna gde sam zabrljo molim ga da mi javi inaceja sam relativno skoro poco da se zezam sa asm-om pa program bas i nije neki kvalitet toliko zasad cu ficus.asm
asembler.11 ficus,
E evo uradio sam do kraja greska je bila prilicno glupa zaboravio sam mov dx,0 pa se zato malo cudno ponasao inace ako ima pitanja za prg. javi mi u mail inace sad je program kompletno gotov ali nisam siguran da svejedno nema neki bug :(( srecno. cu ficus.asm
asembler.13 todorp,
Jelte sta mu dodje i ako moze malo detaljnije objasnjenje: ax=0x3400 int 21h Pozdrav od Todora. PS. Valjda ima neke veze sa idle interaptom.
asembler.14 ficus,
Koliko sam ja provalio to sluzi za petljanje sa tsr-ovima da budem nesto precizniji imas u ah=34h i posle izvrsenog poziva INTERAPTA IMAS FAR ADRESU NEKOG DOSOVOG FLAGA u es:bx (koliko sam ja ukapiro) i taj fleg je setovan ako dos izvrsava neku funkciju uzgred u masm 6.0 qhelpu taj flag zovu InDos flag pa sad posto me trenutno tsr-ovi ne zanimaju (nisam stigo do te lekcije u knjizi :))) ) ja trenutno neznam na koji fazon flag funkcionise (koj bit je zasta i kako je uopste organizovan) ali probacu da iskopam nesto o tome inace isto kolko sam ukapiro taj flag bi trebalo da bude proveren u tsr-u da li je postavljen da bi se obezbedilo nesmetano koristjenje dosa e sad u noivijim verzijama dos-a ima jos neki registar uz taj indos i taj drugi sluzi (opet koliko sam pokapiro) da bi masina mogla da prekine izvrsavanje tekuceg programa kad se blokira (koliko to funkcionise svima je poznato :((((( ) ako ti treba neko objasnjenje u vezi flabgova ostavi poruku da nastavim da kopam po help-u) FICUS
asembler.15 todorp,
> dos izvrsava neku funkciju uzgred u masm 6.0 qhelpu taj flag zovu > InDos flag pa sad posto me trenutno tsr-ovi ne zanimaju (nisam stigo Pa ja bas i pokusavam da pisem neki tsr pa bi ti bio zahvalan da mi opises taj indos flag ako ti nije problem. Pozdrav od Todora.
asembler.16 macak,
█ ... InDos fleg. Nisam neki strucnjak, ali znam da moze da se iskoristi kao neka vrsta signalizacije kada je DOS slobodan. Moze se pri instalaciji programa sacuvati vrednost InDos flega i posle se proveravati da li je DOS "slobodan". Ovo je korisno kada program stalno sam proverava da li su ispunjeni specificni uslovi za njegovo startovanje (recimo presrece interapt 08H). Mislim da nema neke vece koristi ako se program startuje samo pri pozivu odredjenog prekida. Uostalom, evo sta kaze lista interapta (taken from Sezam) : -------------------------------------------- INT 21 - DOS 2+ - GET ADDRESS OF INDOS FLAG AH = 34h Return: ES:BX -> one-byte InDOS flag Notes: the value of InDOS is incremented whenever an INT 21 function begins and decremented whenever one completes during an INT 28 call, it is safe to call some INT 21 functions even though InDOS may be 01h instead of zero InDOS alone is not sufficient for determining when it is safe to enter DOS, as the critical error handling decrements InDOS and increments the critical error flag for the duration of the critical error. Thus, it is possible for InDOS to be zero even if DOS is busy. the critical error flag is the byte immediately following InDOS in DOS 2.x, and the byte BEFORE the InDOS flag in DOS 3+ (except COMPAQ DOS 3.0, where the critical error flag is located 1AAh bytes BEFORE the critical section flag) For DOS 3.1+, an undocumented call exists to get the address of the critical error flag (see AX=5D06h) SeeAlso: AX=5D06h,AX=5D0Bh,INT 28 -------------------------------------- Ne znam tacno kako bi to izgledalo i asembleru, ali u Pascalu moze da se uradi nesto ovako: var indos:^boolean; .... .... r.ah:=$34;msdos(r); indos:=ptr(r.es,r.bx); ... Onda proveravas InDos, ako je indos^=true, mozes da startujes proceduru. Bilo bi lepo kada bi neko nesto opsirnije napisao o tome.
asembler.17 ficus,
Nazalost ja sam pocetnik sto se asemblera tice al na srecu dokopo sam se relativno dobre literature tako da cu pokusati nesto da provalim ako mi uspe javicu. inace tsr-ovi me nisu puno zanimali a i taj flag nemora uvek da se koristi (ne u svakom tsr-u) koliko sam ja ukapiro ali svejedno sto ne probas da pogledas primere koji idu uz masm ako oces mogu da ti ih posaljem.
asembler.18 todorp,
> ne probas da pogledas primere koji idu uz masm ako oces mogu da ti > ih posaljem. Mislim da sam ga provalio. Ako je to samo varka i zaglavim ima da vristim za pomoc ;)))) Hvala na ponudi! Pozdrav od Todora.
asembler.19 ciki,
>**> Nazalost ja sam pocetnik sto se asemblera tice al na >**> srecu dokopo sam se relativno dobre literature KOJE ?????????????????????? Pozdrav Ciki!
asembler.20 ficus,
> >**> Nazalost ja sam pocetnik sto se asemblera tice al na > >**> srecu dokopo sam se relativno dobre literature > > KOJE ?????????????????????? Microsoft macro assembler programers guide (v6.0) knjiga ide uz masm ali nazalost imam samo kopiju koja ne moze dalje da se kopira jer su tako spojenoi listovi a i ne verujem da bi uspeo nesto da procitas ali sve jedno ako negde natrapas na nju kupuj obavezno. nemas nista (skoro nista) o dosovim interaptima ali o svemu ostalom imas a sto se interapata tice imas ih u quick help-u i pchelp-u (ili bese helppc) ima na sezamu u info-u.
asembler.21 jsalai,
Potrban mi je neki (Cross)assembler za 8085. Molim narod Sezamovski, da kaze nesto o tome. Za veliku nuzdu :) moze i samo set instrukcija Veliki pozdrav jsalai
asembler.22 drpr,
Zdravo svima! U orka konferenciji sam video da ljudi traže "disasemblere i krosasemblere" i to koliko sam zametio za neke čipove i to specificirane.Mene zanima može li neko da mi objasni šta su to disasembleri i krosasembleri i još da navedem , ako ima nekog značaja, da se u asembler malko razumem. E sad ako sam ja gore navedene pomešao sa "običnim" asemblerom , dozvoljavam smeh u velikim količinama :)))) cope
asembler.23 dejanr,
>> Mene zanima može li neko da mi objasni šta su to >> disasembleri i krosasembleri Krosasembler - program pomoću koga, recimo, na PC-ju asembliraš kod za Motorolu 68000 i onda to na neki način (preko emulatora?) prebaciš na ploču sa tim 68000 radi testiranja. Dakle, asembliranje se vrši na računaru na kome se program ne izvršava niti se (obično) može izvršavati. Disasembler - program koji uzme objektni kod (niz bitova) i od njega napravi asemblerski listing. Ideja je da docnije taj asemblerski listing analiziraš da bi video kako program radi. Stvar ima smisla ako ti nisi autor tog programa, jer inače imaš daleko kvalitetniji listing koji si sam pisao i asemblirao u izvršni kod.
asembler.24 vasic,
> Mene zanima može li neko da mi objasni šta su to > disasembleri i krosasembleri i još da navedem , ako ima nekog > značaja, da se u asembler malko razumem. Disasembler = asembler ** -1 ;) Što će reći, to je program koji od izvršnog koda ume (sa manje ili više uspeha) da napravi izvorni (*.ASM, *.LST i slično). Odličan primer ovakvog programa je Sourcer, mada za nuždu i Debug (komanda 'U') može da posluži. Krosasembler je asembler koji se izvršava na jednoj mašini (PrC-u, recimo) a prevodi programe pisane za nešto sasvim drugo (recimo Z80). Onda tako prevedeni program bilo kako prebaciš na Spektruma i on tamo možda čak i radi. :) Analogno ovome, kroskompajleri su kompajleri koji rade na jednoj mašini a proizvode kod koji se izvršava na nekoj drugoj.
asembler.25 nenadb.,
>> Potrban mi je neki (Cross)assembler za 8085. >> Molim narod Sezamovski, da kaze nesto o tome. Javi mi se na MAIL. Imam i racunar sa 8085 (TRS-102), a i original INTEL-ovu tehnicku i softwersku dokumentaciju, u obliku jedne jako lepe 100-strane knjizice.
asembler.26 zsiz,
#Potrban mi je neki (Cross)assembler za 8085. #Molim narod Sezamovski, da kaze nesto o tome. #Za veliku nuzdu :) moze i samo set instrukcija Imam XASM za 6800 i za 8748, u jednoj arhivi. Ako ima zainteresovanih neka se jave. Pozdrav. zsiz
asembler.27 drpr,
-> Krosasembler je asembler koji se izvršava na jednoj mašini -> (PrC-u, Hvala i tebi i dejanu na lepim odgovorima! cope
asembler.28 spantic,
> Imam XASM za 6800 i za 8748, u jednoj arhivi. > Ako ima zainteresovanih neka se jave. Nego :) Još da se neko javi i za 68000... Hvala :)
asembler.29 mstanic,
>> Potrban mi je neki (Cross)assembler za 8085. >> Molim narod Sezamovski, da kaze nesto o tome. Vidi u konferenciji ORKA:electron uz neku poruku je zakačen SW generički krosasembler za razne mikro- procesore, a ako nema za 8085 (mada mislim da ima) ima uputstvo kako da ga dodaš u tabelu. Sad nađoh gde je, uradi sledeće i eto ti krosasembler. CONF JOIN ORKA.1 CONF FILE 3.193 (;)
asembler.30 zsiz,
#> Imam XASM za 6800 i za 8748, u jednoj arhivi. #> Ako ima zainteresovanih neka se jave. # Nego :) Evo ide. Pozdrav. zsiz 68008748.zip
asembler.31 spantic,
> Evo ide. Svaka čast! Hvala :)
asembler.32 biki,
Imam problema da inicijalizujem koprocesor Postavim u MASM-u .287 ili .07 i upisem koprocesorske naredbe, ali posle kompajliranja koje prodje bez gresaka, program kad ga startujem jednostavno blokira, kao da nemam koprocesorH. U cemu je caka? HHHHHHHHHHHH
asembler.33 zsiz,
# Svaka čast! Hvala :) No problem :)
asembler.34 jsalai,
> a i original INTEL-ovu tehnicku i softwersku dokumentaciju, Da malko samo pojasnim, to treba jednom mom poznaniku, okorelom hardverasu, koji hoce da promeni program za industrijsku vagu, i to strpa u odgovarajuci EPROM. Bojim se da to ipak nece moci bez XAssemblera. U svakom slucaju VELIKO hvala, a ako bude neophodno da se konsultuje literatura, seticu se Tebe pozdrav jsalai PS. Zahvaljujuci mstanicu nadjen krosasembler!
asembler.35 jsalai,
> zakacen SW genericki krosasembler za razne mikro- > procesore, a ako nema za 8085 (mada mislim da ima) Hvala puno na pomoci jsalai
asembler.36 nenadb.,
>> industrijsku vagu, i to strpa u odgovarajuci EPROM. Bojim I gde me nadje, ja zbog te proklete vage i nabavi knjigu. P.S. Negde mi se zaturio i neki visak delova koji je isao u nju...
asembler.37 nicic,
Potreban mi je Cross Assembler za 6502 ili 6510. Hvala, Ica
asembler.38 dtadic,
>> Potreban mi je Cross Assembler za 6502 ili 6510. Uz neku od poruka u ORKA:electron nalazi se jedan univerzalni krosasembler, podrzava i 65(C)02 (ne i 6510). DT
asembler.39 tomae,
>>> Potreban mi je Cross Assembler za 6502 ili 6510. > > Uz neku od poruka u ORKA:electron nalazi se jedan univerzalni > krosasembler, podrzava i 65(C)02 (ne i 6510). orka.1 3.193
asembler.40 petkovicd,
Cini mi se da ovo pitanje treba da se nadje bas ovde. Ucili smo ovih dana na faksu predstavljanje naredbi u racunarskom sistemu i pored ostalog nacine adresiranja. Medjutim to je bilo prilicno traljavo objasnjeno. Da li neko moze nesto opsirnije da kaze o: - registarskom direktnom adresiranju; - -||- indirektnom adresiranju; - memorijsko direktno i indirektno ad. - registarsko indirektno adr. sa pomerajem - relativno adresiranje; - sve vrste adr. sa autoinkrementiranjem( dekrementiranjem ) Dejan
asembler.41 mstanic,
Možda nije vezano za temu ali da li neko ima simulator za 8051 na PC-ju. Ako postoji zamolio bih da se javi.
asembler.42 mjova,
> adresiranja. Medjutim to je bilo prilicno traljavo > objasnjeno. Da li neko moze nesto opsirnije da kaze o: imaš lep tekst o tome (na engleskom) u fajlu okačenom uz neku moju poruku u ovoj teme (ne znam koja conf). mislim da se zove asmhelp.arj ili tako nekako. nije dugačka arhiva, ali je moćna!
asembler.43 ficus,
> imaš lep tekst o tome (na engleskom) u fajlu okačenom uz neku moju > poruku u ovoj teme (ne znam koja conf). mislim da se zove > asmhelp.arj mislim da je asmtutor.arj il zip
asembler.44 spantic,
Imam jedan problem koji se na žalost :( mora realizovati u asembleru. A to je realizacija potprograma koji ostvaruje kašnjenje od 1s sa aktivnim čekanjem. Ima neko rešenja?
asembler.45 todorp,
> Imam jedan problem koji se na zalost :( mora realizovati u asembleru. A > to je realizacija potprograma koji ostvaruje kasnjenje od 1s sa aktivnim > cekanjem. Ima neko resenja? Pa pravo da ti kazem, nemam pojma sta mu to dodje aktivno cekanje. Ako ti treba cekanje sta mislis o: mov cx,neki broj koliko ti treba da ceka wait: loop wait Pozdrav od Todora.
asembler.46 ivanna,
> Imam jedan problem koji se na zalost :( mora realizovati u > asembleru. A to je realizacija potprograma koji ostvaruje > kasnjenje od 1s sa aktivnim cekanjem. Da mozda ne treba da polazes 'projektovanje mikroprocesorskih sistema'? ;) Ako si ET, taj zadatak ne moras da radis. Ako nisi, dao mi je neko resenje tog zadatka, pa ako ti i dalje treba, mail-uj me. Uzgred, te domace ti najverovatnije niko nece ni pregledati, jer kako sam ja cula ocenu za domaci dobijas u zavisnosti od ocene na ispitu. (ovaj moj odgovor bas i nije za ovu konf.) :)
asembler.47 vasic,
> Pa pravo da ti kazem, nemam pojma sta mu to dodje aktivno cekanje. Ako ti > treba cekanje sta mislis o: > mov cx,neki broj koliko ti treba da ceka > wait: > loop wait No-no. :) Sve drugo slobodno radi, samo ovo ni slučajno nemoj. Razlog je očigledan: različite mašine, različite brzine => različito čekanje. Predlog za spantića: Zašto ne bi iskoristio BIOS-ov sat? Na adresi 0:46Ch imaš jedan DWORD koji sadrži trenutno vreme u 1/18.2 sekunde. Dakle, očitaš početnu vrednost (što ni u kom slučaju ne mora da se radi iz asemblera), vrtiš se u petlji dok se ne uveća za 18 (ako ti nije previše bitna greška od ¸10ms koju ovako praviš), i to ti je to.
asembler.48 spantic,
> Da mozda ne treba da polazes > 'projektovanje mikroprocesorskih sistema'? ;) Pa videćeš me na polaganju, taj mi je zaostao. Ali nije u tome stvar. Koliko sam ja čuo uopšte nije nužan. Uostalom uradio sam lepo projekat :) Poenta je da mi je zatrebao a ja asember obožavam nemaš ideje. > i dalje treba, mail-uj me. Uzgred, te domace ti > najverovatnije niko nece ni pregledati, jer kako sam ja > cula ocenu za domaci dobijas u zavisnosti od ocene na > ispitu. Kada je reč o Đuri i njegovim kućnim čarolijama moglo bi se verovati. Ali nema šanse da se tako lako izvuče ;)
asembler.49 drpr,
-> mov cx,neki broj koliko ti treba da ceka -> wait: -> loop wait Da ali sve zavisi od mašine na kojoj će se to izvršavati a čoveku treba da čeka baš jednu sekundu. Predložio sam panti u klubu da skine s dos fj-om vreme pa da čeka malko pa da opet skine sve dok ne bude 1sec ali mu se takva ideja ne skida znači neće da se bavi int-ovima :)) cope
asembler.50 spantic,
> Predlog za spantića: Zašto ne bi iskoristio BIOS-ov sat? > Na adresi 0:46Ch imaš jedan DWORD koji sadrži trenutno > vreme u 1/18.2 sekunde. Dakle, očitaš početnu vrednost > (što ni u kom slučaju ne mora da se radi iz asemblera), > vrtiš se u petlji dok se ne uveća za 18 (ako ti nije > previše bitna greška od ¸10ms koju ovako praviš), i to ti > je to. Pa jeste da nije velika greška ali greška jeste :) Imam takvo rešenje. Ima li neko bolje? Hvala u svakom slučaju :)
asembler.51 todorp,
> No-no. :) Sve drugo slobodno radi, samo ovo ni slucajno nemoj. Razlog je > ocigledan: razlicite masine, razlicite brzine => razlicito cekanje. Potpuno si u pravu ali sam ja mislio da je upitanju jedna masina sa specificnim programom koji bi se na njoj vrteo. Posle sam se setio da je to glupost i da je najbolje ako hoce neku kompatabilnost da koristi int 8 ili int 1c. Medjutim to komplikuje (ne mnogo iz C-a sa getvect i setvect do ide strava). Prema tome, izvinjavam se na ne razmisljanju :)) Pozdrav od Todora.
asembler.52 nenadp,
>> Predlog za spantica: Zasto ne bi iskoristio BIOS-ov sat? >> Na adresi 0:46Ch imas jedan DWORD koji sadrzi trenutno >> vreme u 1/18.2 sekunde. :)))))))))))))))))))))) nemoj da mislis da se tebi smejem tvoja ideja je OK ali mi ovaj Srdjanov problem mnogo lici na domaci iz "Mikroprocesorskih sistema" pa sam se nasmejao pri pomisli kakvu bi facu slozio asistent kada bi video takvo resenje. Pozdrav, Nenad P.S. Nagradno pitanje sta je pisac hteo da kaze sa "aktivno cekanje" nevidim kako bi kruzenje u mrtvoj petlji 1 sec moglo da se nazove aktivnim cekanjem a opet da se radi nesto na interapt bazi malo je veci nivo za ono sto se ocekuje od njih. Ajd ako neko ima ideju sta doticni termin znaci neka javi jer treba da uradim domaci mladjim koleginicama ;)))).
asembler.53 dgrbic,
:: Predlog za spantića: Zašto ne bi iskoristio BIOS-ov sat? :: Na adresi 0:46Ch imaš jedan DWORD koji sadrži trenutno :: vreme u 1/18.2 sekunde. Ako nije bitno da stvar radi na XT-u, bolje rešenje je poziv INT 15H, podfunkcija 86H koja radi čekanje, interval se zadaje u CX:DX u mikrosekundama, znači stavi 1000000 (CX = 000FH, DX = 4240H), AH = 86H, int 15H. To jest, ako treba samo čekati. Ako u međuvremenu treba još nešto raditi (proverava da li je pritisnut neki taster i slično) pozove int 15H, f-ja 83H, CX:DX isti, a ES:BX pokazuje na bajt čiji najviši bit se setuje kad interval istekne. AL = 0 ako se postavlja interval, AL = 1 ako se otkazuje čekanje.
asembler.54 dnikolic,
>> Pa pravo da ti kazem, nemam pojma sta mu to dodje aktivno cekanje. Grizes nokte dok cekas. dn
asembler.55 vasic,
> Srdjanov problem mnogo lici na domaci iz "Mikroprocesorskih > sistema" pa sam se nasmejao pri pomisli kakvu bi facu slozio asistent > kada bi video takvo resenje. Š'ooo? Jel' zato što je mašinski zavisno ili zbog one greške od 10ms ili je nešto treće u pitanju? Uostalom, čovek je pitao u PC.SOFT:asembler pa ja k'o velim... :) ^^
asembler.56 vasic,
> Ako nije bitno da stvar radi na XT-u, bolje rešenje je poziv INT 15H, > podfunkcija 86H koja radi čekanje, interval se zadaje u CX:DX u Ako jeste bitno da radi na XT-u, onda možeš da promeniš frekvenciju standardnog tajmer interapta. To iziskuje da pišeš sopstveni int 8 handler, ali zato možeš od početnih 18.2Hz da ga usitniš sve do par stotina kHz. ;) Mada, sem ako bi mi baš dobro gorelo pod nogama, ja _tu_ mečku radije ne bih dirao. :)
asembler.57 nenadp,
>> S'ooo? Jel' zato sto je masinski zavisno ili zbog one >> greske od 10ms ili je nesto trece u pitanju? Uostalom, >> covek je pitao u PC.SOFT:asembler pa Ma nije greska u pitanju nego dal asistent zna sta je to BIOS ;))))). Pozdrav, Nenad
asembler.58 vitez.koja,
#=> mov cx,neki broj koliko ti treba da ceka #=> wait: #=> loop wait Sad jos reci da je to univerzalno resenje od XTa do 486...
asembler.59 spantic,
> sistema" pa sam se nasmejao pri pomisli kakvu bi facu > slozio asistent kada bi video takvo resenje. Što se Đure tiče sve će taj da progura ;) A takvih rešenja će se nagledati. Pogotovo što se insistira na 8086. > P.S. Nagradno pitanje sta je pisac hteo da kaze sa > "aktivno cekanje" nevidim kako bi kruzenje u mrtvoj petlji > 1 sec moglo da se nazove aktivnim cekanjem a opet da se > radi nesto na interapt bazi malo je veci nivo za ono sto > se ocekuje od njih. Ajd ako neko ima ideju sta doticni > termin znaci neka javi jer treba da uradim domaci mladjim > koleginicama ;)))). Pravo da kažem meni je interapt jedino prihvatljivo rešenje. Tako sam ga na kraju naručiocu i uradio :) Kvaka je u tome što sam u međuvrenu saznao da ipak i ja moram da radim te zadatke iako sam spremio projekat :( E da, nisam Vasicu odgovorio ( izvini ): >>> Predlog za spantica: Zasto ne bi iskoristio BIOS-ov sat? >>> Na adresi 0:46Ch imas jedan DWORD koji sadrzi trenutno >>> vreme u 1/18.2 sekunde. Neprihvatljivo, jer rešenje se i radi univerzalno. Računa se da je 8086 u ovom slučaju procesor kontrolera.
asembler.60 spantic,
> Ako nije bitno da stvar radi na XT-u, bolje rešenje je > poziv INT 15H, podfunkcija 86H koja radi čekanje, interval > se zadaje u CX:DX u mikrosekundama, znači stavi 1000000 > (CX = 000FH, DX = 4240H), AH = 86H, int 15H. Da, bilo je potrebno. U svakom slučaju hvala na pomoći :) Naravno, puno hvala svima koji su se javili :)
asembler.61 tomae,
> P.S. Nagradno pitanje sta je pisac hteo da kaze sa "aktivno > cekanje" nevidim kako bi kruzenje u mrtvoj petlji 1 sec moglo da se > nazove aktivnim cekanjem a opet da se radi nesto na interapt bazi > malo je veci nivo za ono sto se ocekuje Ako je 'aktivno čekanje' ono što ja mislim da bi trebalo da bude onda bi se čekanje moralo realizovati preko nekog timer-a, a ono aktivno preko reakcije na interapt. Drugo, nisam primetio na kom hardveru treba to realizovati
asembler.62 dejanr,
Kao kroz maglu prisećam se da sam nekad davno imao nekakav disasembler OBJ fajlova, ali ajd' sad nađi ga... Imam jedan .OBJ fajl, pisan na nepoznatom jeziku ("sumnjam" na asembler ;) od oko 15 k koji treba disasemblirati. Sourcer neće da disasemblira .OBJ, a kad ga preimenujem u .COM pa mu ga "poturim", obavi dosta loš posao. Ima li neko nešto slično?
asembler.63 dzakic,
OBJTOASM.EXE radi to što ti treba, mada se meni dešavalo da je obj na neki način 'zaštićen' (?) i objtoasm izba╔ýi samo deklaracije, a od programa ništa. Ne znam kako... objtoasm.exe
asembler.64 mjova,
> Kao kroz maglu prisećam se da sam nekad davno imao nekakav > disasembler OBJ fajlova, ali ajd' sad nađi ga... Imam > jedan .OBJ fajl, pisan na vidim da ti je zak poslao obj2asm, pa rekoh da ti kažem da ako to ne upali uradiš jedan link tako da se poveže sa 'praznom rutinom' i da onda to proteraš kroz sourcer.
asembler.65 pstojanovic,
Moze li ovako, radi nezavisno od PC masine bez problema : code segment byte assume cs:code,ds:code org 100h start: jmp main delay dw ? main: xor ax,ax push ax pop es mov di,046ch mov al,es:ŠdiĆ Loop1: ; Sacekaj da vreme istekne do pocetka merenja ... cmp al,es:ŠdiĆ ; je Loop1 ; mov cx,0FFFFh ; Nakon ovog dela u CX se nalazi broj klokova mov al,es:ŠdiĆ ; za 1/18.2 deo sekunde za odgovarajuci racunar. call Petlja mov ax,55 ; 1/18.2*1000 xchg ax,cx ; not ax ; xor dx,dx ; div cx ; sub ax,9 ; Umanjuje se za (Loop2:) do (jnz Loop2) bez CALL mov delay,ax ; U velicinu DELAY <- AX = broj klokova za 1 mSek. ┌──────────────────────────────────────── ──────┐ mov dx,1000 ;─┤Ovde staviti vreme cekanja npr. 1sek=1000mSek.│ mov di,0406h ; └──────────────────────────────────────────────┘ mov al,es:ŠdiĆ ; mov bx,delay ; BX <- DELAY Loop2: ; Aktivna petlja u kojoj se vrsi zadato cekanje mov cx,bx ; call Petlja ; dec dx ; or dx,dx ; jnz Loop2 ; mov ax,4c00h ; Kraj programa int 21h Petlja proc near cmp al,es:ŠdiĆ ; Podpetlja za merenje i izvrsavanje jne Nazad ; loop Petlja ; Nazad: ret Petlja endp code ends end start
asembler.66 valhala,
dobio sam TASM. imam jedno pitanje: kako ovaj monstrum funkcionise?! uopste mi nije jasno kako da radim sa njim. da li da jurim literaturu ili mi neko moze ako trgde da je trazim?
asembler.67 mazi,
>>> Imam jedan problem koji se na žalost :( mora... >>> je realizacija potprograma koji ostvaruje kaš... >>> Ima neko rešenja? ... Ima jedno elegantno, ali pomalo NonDOS i nonBIOS resenje. Vga karta (uzgred, i CGA, Hercules, i EGA, koji je ja mislim isti kao kod VGA) ima registar koji belezi kada elektronski mlaz dodje do kraja ekrana, i to signalizira. To u standardnim VGA modovima uradi 70 puta u sekundi. Lepo pratis registar (koji je uzgred H03DA), testiras cetvrti bit. Kad ga ulovis, odes pa uradis nesto, pa ponovo trk na cekanje elektronskog mlaza. To mu valjda dodje aktivno cekanje. Inace, ovo znam jer sam pasionirani Intro manijak jos iz doba C64 (Ko da zaboravi D012?) evo petlja: mov dx,h03da pr1: in al,dx test al,08h jz pr1 Ivan.
asembler.68 mstanic,
>> dobio sam TASM. imam jedno pitanje: kako ovaj monstrum >> funkcionise?! uopste mi nije jasno kako da radim sa njim. >> da li da jurim literaturu ili mi neko moze Najpametnije je da potražiš literaturu.
asembler.69 spantic,
> Moze li ovako, radi nezavisno od PC masine bez problema : Hvala na trudu. Problem je u međuvremenu rešen, ali i ovo bi koristilo.
asembler.70 spantic,
> Ima jedno elegantno, ali pomalo NonDOS i nonBIOS resenje. Hvala na trudu :) Ali problem je rešen. Stvar je bila u tome da je 80X86 trebao da služi kao kontroler. Znači trebalo je nezavisno rešenje.
asembler.71 ficus,
Pusti tasm nabavi MASM 6.0 mnogo je bolji (cini mi se) a ima i ugradjene makro naredbe kao sto su if repeat until while itd. (ne direktive prevodiocu nego bas naredbe). Sto se literature za njega tice i ne treba ti help je takav da ti nista vise ne treba sem ako si pocetnik.
asembler.72 mjova,
> Pusti tasm nabavi MASM 6.0 mnogo je bolji (cini mi se) a > ima i ugradjene makro naredbe kao sto su if repeat until > while itd. (ne direktive prevodiocu nego bas ne radim baš mnogo u asembleru, ali zanima me kakav je to asembler koji ima if, repeat, until i ostale stvari? vrlo glupavo.. ako nekome treba tako nešto ima C, Paskal itd...
asembler.73 ficus,
Veoma jednostavno imas makro naredbe koje zamenjuju doticne. Tako nesto je napravljeno i za tasm (neznam tacno u kom dir-u na sezamu) uz komentar da je to podrska "OBJEKTNOM" programiranju. Bar mi se cini da je taj fajl za tu namenu. Inace prednosti su 1-ipak su ovako generisani programi kolko tolko kraci i 2-zadrzava se max. kontrola nad masinom. Istina isto sto se moz iz asm-a moze se i iz c-a ali.... Stvar je pitanje ukusa. (Sto asm nebi bio malo visi prg. jezik.) ionako kad sad uporedim asm za pc i basic za c=64 izadje daa je u asm-u lakse programirati (postoje procedure,laksi rad sa grafikom itd.)
asembler.74 mstanic,
>> Pusti tasm nabavi MASM 6.0 mnogo je bolji (cini mi se) a >> ima i ugradjene makro naredbe kao sto su if repeat until >> while itd. (ne direktive prevodiocu nego bas Jel' to ima u spoljnom fajlu ili baš ugrađeno. Ako je u include fajlu te makroe imam već 4 godine i fala bogu rade baš sa TASM-om. Nisam rekao ništa o tome ko je bolji. >> naredbe). Sto se literature za njega tice i ne treba ti >> help je takav da ti nista vise ne treba sem ako si E sad prvi put čujem da literatura ne treba. Ja bih voleo da postoje i takvi programi ali ja za sada ne znam nijedan.
asembler.75 paki,
­> E sad prvi put čujem da literatura ne treba. Ja bih voleo ­> da postoje i takvi programi ali ja za sada ne znam ­> nijedan. Turbo Pascal.
asembler.77 ficus,
turbo pascal turbo c paintbrush yamb (moj yamb) ima jos ali ode mi time.
asembler.78 vitez.koja,
#=> Turbo Pascal. Xe ;)) Ne treba ti literatura da pravis resenja za 'interesantne' problemske zadatke, ali cik napisi npr. asemblersku funkciju sa parametrima ili turbo vision aplikaciju bez literature ... Nema nista bez dobre knjige, stalno otkrivas mlaku vodu, za toplu i ne sanjas da postoji ... ;)
asembler.79 ficus,
ja pisao u c-u asemblerske funkcije sa parametrima a sto se turbo vision-a tice ja sam ga naucio iz primera koji idu uz turbo pascal. Istina odavno se nisam zezo sa tim glupostima (mislim na turbo vision) tako da sam uglavnom zaboravio ko kako se to koristi. 2. Ja nisam rekop da mozes da provalis koriscenje komplikovanih objekata. Nego programiranje u asembleru naravno podrazumevo sam da imas neko pocetno znanje asemblera na nivou da znas otprilike kako da izvrsis grananje kakva je osnovna struktura prg. za 80x86 itd. Istini za volju ja imam Macro assembler user guide ali iz toga neces nauciti nista sto nebi provalio za 10-tak min u helpu istina lakse je citati knjigu nego zuriti u ekran to se slazem ali ... Cak i u samoj knjizi pise da su teme detaljnije razjasnjene u help-u P.S. ima samop ta knjiga u original paketu
asembler.80 pbojan,
Moze li neka dobra dusa da mi podari rutinu za pretrazivanje zadatog dela memorije za datim skupom bajtova? Znaci nesto kao trazenje stringa u stringu, samo u komadu memorije definisanom iskljucivo datim parametrima. Bilo bi dobro kada bi se parametri zadavali preko registara (ES:DI, DS:SI pokazivaci na pocetke, AX i BX duzine, ili tako nekako ). Please?
asembler.81 mazi,
Pa, nisam te baš najbolje shvatio šta si želeo... Evo ti program source + obj. U source je objašnjenje ulaznih i izlaznih parametara. Ako ti ovo ne bude odgovaralo, MAILni me pa ću da modifikujem šta nije onako kako treba. Ivan. P.S. Nisam se baš pretrgao testirajući da li radi sve OK Ako zeza, tu sam finder.arj
asembler.82 pbojan,
> Pa, nisam te bas najbolje shvatio sta si zeleo... > Evo ti program source + obj. U source je objasnjenje > ulaznih Jesi, shvatio si :). Fala ti k'o bratu, mada sam se vec snasao. Moje resenje je malkice duze (podrazumevao sam ne tiny nego large), tako da cu se pozabaviti ovim tvojim. Ovako na prvi pogled, izgleda da radi :).
asembler.83 ilotina,
HI! Može li neko da mi objasni kako izgleda BCD kodiranje (ako sam pogodio da je kodiranje:). Pojavljuje se recimo kod interrapta 1a, funkcija za čitanje vrednosti sistemskog sata...... Ivan
asembler.84 spantic,
> Može li neko da mi objasni kako izgleda BCD kodiranje (ako BCD je binarno kodirani decimalni broj i predstavlja cifre 0 do 9 grupom od 4 binarne cifre. Konverzija decimalnog broja u BCD je jednostavna kao i obrnuto, za razliku od računanja tako predstavljenih brojeva. Postoje algoritmi doduše, ali BCD sistemi se danas relativno malo koriste. Ima ih kod kalkulatora, numeričkih tastatura... Primer: 140 = 0001 0100 0000 10 BCD
asembler.85 smiloradovic,
)> Može li neko da mi objasni kako izgleda BCD kodiranje (ako sam Kodiraju se dve cifre po bajtu, po sistemu: # # # # # # # # bit 7 6 5 4 3 2 1 0 └───┬───┘ └───┬───┘ viša cifra niža cifra Pošto se, jelda, radi o binarno kodiranim ¨decimalnim¨ brojevima, ispravne cifre su samo od 0 (0000) do 9 (1001). Recimo, 0100 0010 predstavlja decimalno 42. Ako radiš u asembleru (bar se tema tako zove;), imaš instrukciju AAD koja broj iz ovakvog zapisa pretvara u binarni (ascii adjust before division - nema veze kako se zove, bitno je da radi pos'o :)
asembler.86 smiloradovic,
)> predstavlja decimalno 42. Ako radiš u asembleru (bar se tema tako zove;), )> imaš instrukciju AAD koja broj iz ovakvog zapisa pretvara u binarni (ascii )> adjust before division - nema veze kako se zove, bitno je da radi pos'o :) E, mućak. Radi, ali skoro (sitni sati, pa malo brzam). Ovo radi za raspakovane BCD cifre - znači, u bajtu je samo jedna cifra, i to u donja 4 bita. Ono AAD radi AL <- 10*AH+AL. BTW, brojevi u (raspakovanom) BCD zapisu su zgodni ako treba da ih 'izbaciš' na ekran - dovoljno je samo jedno OR 30h, i imaš valjanu aski cifru spremnu za štampanje.
asembler.87 vitez.koja,
#=> Može li neko da mi objasni kako izgleda BCD kodiranje #=> (ako sam Nepakovani BCD brojevi - svaki bajt predstavlja jednu decimalnu cifru (vrednosti 0-9). Pakovani BCD brojevi - svaki bajt predstavlja 2 cifre - 4 bita za cifru.
asembler.88 ndragan,
/ algoritmi doduše, ali BCD sistemi se danas relativno malo koriste. Pogledaj malo kako radi kobol kompajler na vaksu. Pre nego što sabere 1+1, on to prevede u BCD. Inače, vidim da niko nije okačio značajnu osobinu BCD pakovanih brojeva: znak je spakovan u poslednjoj nibli, i to sa 1100 za + i 1101 ili 1111 za -; zato BCD brojevi uvek imaju neparan broj cifara.
asembler.89 mstanic,
Ima li negde (ili neko) obj2asm? Znam da se ranije pričalo o njemu ali tek sad mi je zatrebao.
asembler.90 dzakic,
obj2asm je prikačen u ovoj konferenciji uz poruku 3.63
asembler.91 valhala,
Moze li neko da mi kaze (znam da je pitanje glupo i banalno, ali begginers luck- mozda mi i odgovori neko:)))) kako da iz tasm-a napisem program koji bi crtao tacke po ekranu? Kad smo vec tu, gde mogu da nadjem literaturu ili neki fajl sa uputstvom za Tasm? Val.
asembler.92 mazi,
> Moze li neko da mi kaze (znam da je pitanje glupo i banalno, > ali begginers luck- > mozda mi i odgovori neko:)))) kako da iz tasm-a napisem program > koji bi crtao tacke po ekranu? Npr Ovako: Mov ax,0013h int 10h ; Uključi se mod 320*200 u 256 boja push ds mov ax,0a000h ; Setuje se data segment na video blok mov ds,ax cld mov al,0ffh ; Boja kojom se ispisuje tačka mov cx,140h ; Koliko tačaka mov si,0 ; Odakle se ispisuje (u video memoriji) rep movsb ; Ponavljaj ispis dok se ne završi pop ds p1: mov ax,0 ; Dok ne pritisneš space gledaš liniju :)) int 16h cmp al,' ' jne p1 mov ax,0007h int 10h ; Vratimo se u textualni mod mov ax,04ch int 21h ; Vraćanje u DOS Tu ispred sleduju bla bla uvod i na kraju kraj rutine, to ne znam kako ide u TASM-u. Inače, što se tiče literature, za interapte imaš i na sezamu, valjda, ne znam gde, a za TASM ne znam stvarno. Ivan.
asembler.93 valhala,
Da, samo sto je jedini problem da od linije nema ni traga ni crte:), a ni povra- tak u dos ne funkcionira:((( Da li je zbog programa ili sam ja smotan ko sajla, pa ga nisam dobro uneo, nemam pojma. Uglavnom---nece:(((( Help!:( Val.
asembler.94 .obj,
> Da, samo sto je jedini problem da od linije nema ni traga ni crte:), a ni > povra- > tak u dos ne funkcionira:((( Povratak ne funkcionira :) jer je mazi izgleda kucao taj program iz glave pa je na par mesta malo pogrešio :) Treba da umesto MOV SI, 0 staviš MOV DI, 0 (ili gde 'oćeš da se "iscrta" linija, Y * 320 + X), i treba REP STOSB a ne REP MOVSB. Da bi programče izletelo u DOS, treba da piše MOV AH, 4Ch a ne AX. Otprilike tako. > Da li je zbog programa ili sam ja smotan ko sajla, pa ga nisam dobro uneo, > nemam pojma. Uglavnom---nece:(((( To je programče za VGA. Imaš li je? :) Uzgred, pitanje ti je malo preopšto... "da crtam tačke" :)
asembler.95 mazi,
>> Da, samo sto je jedini problem da od linije nema ni traga ni >> crte:), a ni povra- >> tak u dos ne funkcionira:((( > > Povratak ne funkcionira :) jer je mazi izgleda kucao taj > program iz glave pa je na par mesta malo pogrešio :) Treba da > umesto MOV SI, 0 staviš MOV DI, 0 (ili gde 'oćeš da se "iscrta" > linija, Y * 320 + X), i treba REP STOSB a ne REP MOVSB. Da bi > programče izletelo u DOS, treba da piše MOV AH, 4Ch a ne AX. > Otprilike tako. > >> Da li je zbog programa ili sam ja smotan ko sajla, pa ga nisam >> dobro uneo, nemam pojma. Uglavnom---nece:(((( > > To je programče za VGA. Imaš li je? :) Uzgred, pitanje ti je > malo preopšto... "da crtam tačke" :) E pokrivam se ušima. Jeste, pisao sam iz glave on-line. E, evo ispravljene verzije, sa sve zaglavljem i završetkom, ovako radi u MASM-u, a za TASM ne znam: --- .MODEL tiny program segment para public 'code' assume cs:program, ds:program org 0100h start: Mov ax,0013h int 10h ; Uključi se mod 320*200 u 256 boja push es mov ax,0a000h ; Setuje se data segment na video blok mov es,ax cld mov al,0 ; Boja kojom se ispisuje tačka mov di,0 ; Odakle se ispisuje (u video memoriji) p2: mov cx,140h ; Koliko tačaka rep stosb ; Ponavljaj ispis dok se ne završi inc al ; Promeni boju cmp al,200 ; Ispisasmo li ceo ekran? jne p2 ; Ne? Ajd nazad na P2 pop es p1: mov ax,0 ; Dok ne pritisneš space gledaš liniju :)) int 16h cmp al,' ' jne p1 mov ax,0007h int 10h ; Vratimo se u textualni mod mov ah,04ch int 21h ; Vraćanje u DOS program ends end start E, sad ima da radi, proverio sam Uzgred, ovo ti iscrta ceo ekran Ivan.
asembler.96 valhala,
Ono zadnje za ah=04ch sam provalio sam, a na onom prvom i srednjem:) ti hvala. BTW imam vga, tacnije ATI VGA WONDER, tako da za mene prvi interrupt nije ah=13h nego ah=61h:)))(nadam se da ga dobro otkucah:))). Sto se tice koncepcije pitanja, eh, pa zbunjen ja pa i zbunjena moja pitanja:)) Nego namera mi je bila da setujem samo jedan bit, odnosno nacrtam samo jednu ta- cku, a vi mi poklonili celu liniju( ne da se bunim, naprotiv:))). Val.
asembler.97 mazi,
> BTW imam vga, tacnije ATI VGA WONDER, tako da za mene prvi > interrupt nije ah=13h nego ah=61h:)))(nadam se da ga dobro otkucah:))). Kako bre, 320*200*256 je standardni VGA mod, on je oduvek bio 13h u modovima. Da nije tako kod tebe, ne bi ti radila ni jedna igra ili program koji radi u toj rezoluciji. Ivan.
asembler.98 valhala,
Sorry but C! Opet nece:((((. Dkle stvarno sam baxuz, ne radi ni kad ga tlinkujem niti kad ga koristim iz paskala sa {$L...} :(((((((
asembler.99 mazi,
> Sorry but C! Opet nece:((((. > Dkle stvarno sam baxuz, ne radi ni kad ga tlinkujem niti kad ga > koristim iz paskala sa š$L...ć > :((((((( E, evo šaljem ti i source i .com fajl. Sad ima da ti radi! Ivan. PS ako sad ne radi, dolazim sa macolom da ti sredim kvar :)) fajl.arj
asembler.100 valhala,
>###### PS ako sad ne radi, dolazim sa macolom da ti sredim kvar >###### :)) RADI!!!!!!!!!!!!!!:))))))))))))))))))))))) Thanks. Sto se macoli tice, ako imas para za kartu do Bara(kako poeticki:)) ) be my guest, but be gentle, it's my first time:))))))) Val.
asembler.101 valhala,
>###### Kako bre, 320*200*256 je standardni VGA mod, on je oduvek >###### bio 13h u modovima. Da nije tako kod tebe, ne bi ti >###### radila ni jedna igra ili Da, ali ako si citao sezamov interrupt info file, videces da je za vgawon. specifican ah=61h, sto opet ne bi trebalo da znaci da 13h ne radi( a radi:) ) ^^^^^^^^^^ Pitanje: kakvo je znacenje naredbi insb i outsb? Val.
asembler.102 dens,
Ima li neko asembler za mikroprocesor 6502 ? Asembler 6502 iz paketa TASM???.??? (bio je okačen na sezamu) ne odgovara potrebama. Dejan :)
asembler.103 spantic,
> 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,
> 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,
> RADI!!!!!!!!!!!!!!:))))))))))))))))))))))) Sreća tvoja da je proradilo! :))) Ivan.
asembler.106 ficus,
:) 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,
> 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,
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,
> 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,
>> 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,
│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,
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,
>> 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,
#=> 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,
>> 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,
>> 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,
> 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,
-> 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,
> 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,
>> 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,
-> 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,
> 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,
> 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,
*> Jedini problem je sto ovo ima da jaaaako uspori izvrsavanje *> programa. Na 486 to i nije neki problem :)
asembler.137 bojanp,
>> 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,
> 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,
> 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,
> 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,
>> Mani se DPMI-a ako ti baš nije hitno... >> >> Pozdrav, Deki Mani se dugačkih quote-ova ... Pozdrav, Dejan :)