PCPROG.4

22 Apr 1994 - 05 Jan 1995

Topics

  1. algoritmi (153)
  2. comment (15)
  3. ms.dos (123)
  4. windows (304)
  5. asembler (103)
  6. basic (80)
  7. jezici (196)
  8. pascal (880)
  9. cccc (586)
  10. cpp (157)
  11. clipper (1267)
  12. baze.podataka (525)
  13. razno (529)

Messages - asembler

asembler.1 omega,
Znaci ja cu morati da zapocnem ? :) Da li neko poseduje brzu proceduru za pisanje u text modu, direktnim gadjanjem video memorije, a naravno, jedan od argumenata je boja?
asembler.2 markom,
█*█ Da li neko poseduje brzu proceduru za pisanje u text modu, direktnim █*█ gadjanjem video memorije, a naravno, jedan od argumenata je boja? Jel mora iz asemblera? Ja imam za pascal (ali sa puuuuno asemblera ;)
asembler.3 omega,
Ţ █*█ Da li neko poseduje brzu proceduru za pisanje u text modu, direktnim Ţ █*█ gadjanjem video memorije, a naravno, jedan od argumenata je boja? Ţ Ţ Jel mora iz asemblera? Ja imam za pascal (ali sa puuuuno asemblera ;) Savrseno. TO mi je bas potrebno. Salji...
asembler.4 markom,
█*█ Savrseno. TO mi je bas potrebno. Salji... Oukej, evo ga ... display.zip
asembler.5 omega,
ŢOukej, evo ga ... Gde je!?
asembler.6 .hik,
Da li neko zna koji kodovi mogu da se ubace da bih izvrsio WormBoot, tj. reset uz testiranje memorije...
asembler.7 markom,
*** Gde je!? Nisam zvao dugo sezam, ali eno ga sad uz poruku ... Sorry, na zakašnjenju ...
asembler.8 dzakic,
> Da li neko zna koji kodovi mogu da se ubace da bih izvrsio > WormBoot, tj. reset uz testiranje memorije... Warm boot NE testira memoriju, dok cold boot to radi. warm: mov ax,40h mov ds,ax mov word ptr [72h],1234h cold: jmp 0f000h:0fff0h ; Skok na F000:FFF0 - power-on test
asembler.9 rkramer,
Koja je najbolja knjiga za ucenje asm-a?? Kako da direktno upisem text u video RAM? Thanks,RKR p.s. Izvinite zbog ovakvih pocetnickih pitanja, ali tek ucim...
asembler.10 maksa,
Da li važi: jedan fwait = 3 NOP-a ?
asembler.11 berry,
> Da li vazi: jedan fwait = 3 NOP-a ? Nije tako prosto. NOP je jedan byte i traje 3 clocks. FWAIT nije instrukcija NPX-a nego alternativni mnemonik za CPU-ovu instrukciju WAIT. WAIT obustavlja dalje dekodovanje/izvrsenje CPU-ovih instrukcija dok je BUSY pin aktivan (high). Busy signal postavlja numericki procesor. To znaci da WAIT odnosno FWAIT treba da ti omoguci da sacekas da se numericka ionstrukcija zavrsei ( i to uspesno). Trajanje FWAIT bi trebalo da bude min. 8 clcks. Primer: F.... brojka FWAIT MOV AX,brojka Ovo FWAIT ti omogucuje da CPU ne dira 'brojka' mem operand dok NPX ne zavrsi sa njim.
asembler.12 bulaja,
Ima li neko gotovu funkciju (da se ne mučim:) za brzo traženje nekog stringa (case insensitive) unutar text datoteke? Dovoljno će biti samo da vrati flag da je string nadjen ili nije, može eventualno i file pointer na mesto gde je pronadjen. :)
asembler.13 markov,
Da li iko ima ili zna za neku dobru knjigu za ucenje asemblera (88/286/386)???? Unapred hvala , Marko
asembler.14 kriss,
Da li neko zna kako može da se 'otvori' (pod)direktorijum i da se čitaju podaci iz njega? Recimo, nalazim se na disku n:, negde u memoriji imam ASCII string 'c:\utility\',00 i želeo bih da povadim sve podatke iz istog.
asembler.15 markom,
:: Da li iko ima ili zna za neku dobru knjigu za ucenje asemblera :: (88/286/386)???? Mile K. Stojčev: Savremeni 16-bitni mikroprocesori II Takođe nije loš ni udžbenik sa 3 ili 4 godinu MG-a (ne znam kako se zove, ali jesu neki informacioni sistemi:), onako čisto za početak :)
asembler.17 markov,
HI! Postoji li neka grupa koja se bavi asemblerom koja je voljna da me usvoji :)) Hvala , Marko
asembler.18 dejanr,
>> Postoji li neka grupa koja se bavi asemblerom koja je voljna da me >> usvoji :)) Ne verujem da postoji takva grupa, a i ne vidim za šta bi služila, kada već postoji tema u konferenciji.
asembler.19 kdrazan,
Je l' ima ko kakav dobar disasembler (da mu ne moram prepravljati kod da bih ga ponovo asembliro) ? :)))
asembler.20 kriss,
Ajd' opet da pitam: Da li postoji način se direktorijum 'otvori', znači nešto slično kao fajl i da mogu da se čitaju podaci iz njega? Ako ne, da li postoji neki drugi način sem sledećeg, koga od milošte zovem 'oko sedam planina'. ;) - Nalazim se bilo gde ( d:\x\y\z> ); - Imam negde puni path nekog programa u sledećem string obliku 'c:\x1\y1\z1\name.ext',00 - odšetam se do c:\x1\y1\z1\ ; - Pronađem podatak o prvom klasteru tekućeg direktorijuma; - Odem do FAT-a (prethodno utvrdim da li je 12-to ili 16-to bitni - jel nisam odvalio za bitove?) i krenem da učitavam klaster po klaster pa gde naletim na name.ext. Usput, možda bi sve bilo lakše da pitam sledeće: :) Da li se podatak o prvom klasteru programa nalazi i na nekom drugom mestu sem u direktorijumu? :)
asembler.21 miljko,
>> Da li postoji način se direktorijum 'otvori', znači >> nešto slično kao fajl i da mogu da se čitaju podaci iz >> njega? Ako ne, da li postoji neki drugi način sem >> sledećeg, koga od milošte zovem 'oko sedam planina'. ;) Zašto ne probaš sa DOS-ovim FindFirst (Int 21h, AH=4Eh) i FindNext (Int 21h, AH=4Fh) pozivima. žini mi se da je to ono što ti treba.
asembler.22 kriss,
odgovor na: 13.401 KOMUNIKACIJE.6:yu.bbs [ mmitrovic ] ˙˙ Takvo ret i INT 20H su jedno te isto, jer se sa ret CS:IP ˙˙ vraća na PSP:0 gde se nalazi INT 20H instrukcija. ;) U onom konkretnom slučaju - da. Ali se moja poruka odnosila na završetak programa uopšte - šta ako je zaostalo par bajtova na steku? :)
asembler.25 bulaja,
**** new file **** R:\IBMPC\PROGRAM\*.* ---------------------- cpuid3 zip 5139* Oficijelni Intelov source za identifikaciju procesora This program has been developed by Intel Corporation. You have Intel's permission to incorporate this source code into your product royalty free. This program contains three parts: Part 1: Identifies CPU type in the variable cpu_type: 0=8086 processor 2=Intel 286 processor 3=Intel386(TM) processor 4=Intel486(TM) processor 5=Pentium(TM) processor Part 2: Identifies FPU type in the variable fpu_type: 0=FPU not present 1=FPU present 2=287 present (only if cpu_type=3) 3=387 present (only if cpu_type=3) Part 3: Prints out the appropriate message. This part can be removed if this program is not used in a DOS-based system. Portions affected are at the end of the data segment and the print procedure in the code segment. REVISION HISTORY: Date: 4/93 1. Replaced the .486 with .186 to avoid generation of 0FH type long conditional branches (such as the branch to end_get_cpuid at the end of the 8086/8088 test, near code address 003D). These are not executable on the 8086/8088 and 80286, so the code falls into some strange place and hangs the system. The .186 also allows multi-bit shifts to unpack CPUID info. Using .186 requires that all 32-bit operand prefix (66H) be inserted by hand. This is done with a macro (OPND32). 2. Avoid all usage of 32-bit operands until it is clear that the CPU is at least an 80386. The use of the Exx registers caused the generation of the 66H prefix, which are not executed correctly on the 8086/8088 and 80286. 3. Eliminated all the register save/restore and added comment that all registers are used by the functions. 4. Do the stack alignment just before messing with the AC bit in EFLAGS, otherwise the stack may not be properly aligned. Also restore the AC bit immediately, so it does not stay set. 5. Changed the FPU detection to set one flag fpu_type (instead of the previous two flags: fpu_present and infinity). An fpu_type of zero indicates no floating point unit is present, an fpu_type of 2 indicates an 80287 is present, an fpu_type of 3 indicates an 80387 is present. If this code is assembled with MASM with no options specified, it runs correctly on an 8086/8088, 80286, 80386, 80486, and Pentium(tm) processor.
asembler.26 kriss,
˙˙ Zašto ne probaš sa DOS-ovim FindFirst (Int 21h, AH=4Eh) ˙˙ i FindNext (Int 21h, AH=4Fh) pozivima. žini mi se da je to ˙˙ ono što ti treba. Zato što podaci koje te funkcije vrate u DTA imaju sve korisno sem prvog klastera fajla :(( A baš mi on treba :( Evo šta kaže help pc: 00 byte attribute of search (undocumented) byte drive letter used in search (DOS 3.1-4.x, undocumented) 01 byte drive letter used in search (undocumented) 11bytes search name used (DOS 3.1-4.x, undocumented) 02 11bytes search name used (undocumented) 0C byte attribute of search (DOS 3.1-4.x, undocumented) 0D word directory entry number (0 based, undocumented) 0F word starting cluster number of current directory; zero for root directory (DOS 3.2+, undocumented) dword pointer to DTA (DOS 2.x-3.1, undocumented) 11 word reserved 13 word starting cluster number of current directory; zero for root directory (DOS 2.x+, undocumented) 15 byte attribute of matching file 16 word file time (see FILE ATTRIBUTES) 18 word file date (see FILE ATTRIBUTES) 1A word file size 1E 13bytes ASCIIZ filename and extension in the form NAME.EXT with blanks stripped
asembler.28 mmitrovic,
Ů█▀█Ţ U onom konkretnom slučaju - da. Ali se moja poruka odnosila na Ů█▀█Ţ završetak programa uopšte - šta ako je zaostalo par bajtova na steku? da bi RET izašao iz programa mora biti: CS=seg(PSP), vrednost na steku: 0000h Ako se kontroliše stek, uvek se ovako može izaći iz COM programa, jerbo je po ulasku u COM vrednost na steku uvek 0, a CS=DS=ES=PSP. Pošto nema far poziva CS će uvek biti PSP. Razlika sa INT21 je valjda u tome da INT 20 ne zatvara fajlove.
asembler.29 kriss,
˙˙ da bi RET izašao iz programa mora biti: ˙˙ CS=seg(PSP), vrednost na steku: 0000h ˙˙ ˙˙ Ako se kontroliše stek, uvek se ovako može izaći iz COM ˙˙ programa, jerbo je po ulasku u COM vrednost na steku uvek 0, a ˙˙ CS=DS=ES=PSP. Pošto nema far poziva CS će uvek biti PSP. ˙˙ ˙˙ Razlika sa INT21 je valjda u tome da INT 20 ne zatvara ˙˙ fajlove. :))) Upravo to, i slažemo se kroz više poruka, so: :) Ako u COM programu zaostane nešto na steku (a zna da se desi pri nepažnji/slučajno) završiti program sa RET može da bude 'pogubno'. :) Zato je najbolje staviti ah=4ch, INT 21 i sve muke rešene. :)
asembler.30 pik.becej,
Treba mi rutina koja bi proizvela samo jedan beep,znaci kao u bejziku kad bi otkucao.Unapred zahvalan
asembler.31 kriss,
˙˙ Treba mi rutina koja bi proizvela samo jedan beep,znaci kao u ˙˙ bejziku kad bi otkucao.Unapred zahvalan Jel ti treba običan beep, ili određena frekvenca + trajanje? Ako je običan beep onda je to mov ah,02 mov dl,07 int 21h ret dobijeno preko DOS-a. :) Ako ti treba SOUND javi mi se na mail :)
asembler.32 mmitrovic,
Ů█▀█Ţ Ako u COM programu zaostane nešto na steku (a zna da se desi pri Ů█▀█Ţ nepažnji/slučajno) završiti program sa RET može da bude 'pogubno'. :) Ako na steku ostane nešto onda će se program zaglaviti pre nego dogura do famoznog RET. ;) Onda, blago meni, ide na reviziju.
asembler.33 kriss,
˙˙ Ako na steku ostane nešto onda će se program zaglaviti pre ˙˙ nego dogura do famoznog RET. ;) Onda, blago meni, ide na ˙˙ reviziju. ?!?!! Kada se zaglavljuje sledeći program (na kom mestu)? .model tiny .code org 0100h start: jmp preko poruka: db 'Trtmrt ...$' preko: mov ah,09h push ax mov dx,offset poruka push dx int 21h ret end start
asembler.34 bajaga,
Može li mi neko reći kako izgleda ulazno/izlazni kod interupts procedure.
asembler.35 mmitrovic,
Ů█▀█Ţ mov ah,09h Ů█▀█Ţ push ax Ů█▀█Ţ mov dx,offset poruka Ů█▀█Ţ push dx Ů█▀█Ţ int 21h Jel ti to ozbiljno, il' me samo testiraš? ;) Paramteri za DOS dispatcher (INT 21h) ne idu na stek, već u registre. Dakle izbaci ovo push ax i push dx. Posle onog RET skočio bi IP na početak stringa, a mrzi me da gledam koji opcode odgovara bajtovima iz stringa, svejedno se blokira, bilo da zamre ili upadne u mrtvu petlju.
asembler.36 dekiper,
Sourcer! Pozdrav, Deki
asembler.37 pik.becej,
Kako se koristi Teletype mode iz assemblera,ja sam probao ovako ali izgleda da nije tako ... mov ah,0e mov al,219 ; Umesto 219 moze bilo koji ASCII znak int 10h E sad ... ,kako mu reci koji tekst da ispise u Teletype modu ? probao sam da ubacim ... tekst: db "Proba.$" mov dx,offset tekst mov ah,9 int 21h
asembler.38 berry,
> tekst: db "Proba.$" ^ > mov dx,offset tekst > mov ah,9 > int 21h Ovo ti je suvisno. Time si definisao labelu, a ne string. Na kraju dodaj : mov al,return_code ; ako ti treba mov ah,4CH int 21H da se zavrsis proces i vratis se u DOS (ako to zelis). Ako sam dobro razumeo sta zelis da uradis :)
asembler.39 pik.becej,
> Ovo ti je suvisno. Time si definisao labelu, a ne string. > > Na kraju dodaj : > mov al,return_code ; ako ti treba > mov ah,4CH > int 21H > > da se zavrsis proces i vratis se u DOS (ako to zelis). > Ako sam dobro razumeo sta zelis da uradis :) Pa probao sam to tvoje ali mi opet nije jasno gde on cita text koji treba da izbaci na ekran ali nema veze,trazi mi neki com file kad ga startujem sa tim dodatkom,evo sta meni treba,ispis nekog texta na ekranu ali slovo po slovo i pritom da se kursor pomera kako ide sledece slovo,u clipperu a slicno je i u bejziku to je ovo ... a = "Neki text" for i = 1 to len(a) x = substr(a,i,1) č 3,i say "*" tone(151,1) č 3,i say x next Nepoznajem dobro assembler pa me zanimalo kako bi to izgledalo u assembleru,disasemblirao bi ja to ali je problem sto bilo sta da se napise u clipper-u makar i da je samo jedna linija u kojoj stoji cls napravice se exe fajl od nekih 200 Kb sto je dugacak asm ... Tako sam video interupt 10,0e pored koga pise Write in teletype mode sto ja mislim da je to sto sam objasnio gore,tu jos stoji ... ah = 0e al = ascii character to write bh = page number bl = foreground page color Sve je to ok,jedino neznam gde staviti text koji treba da ispise.
asembler.40 snemcev,
>> al = ascii character to write >> >> Sve je to ok,jedino neznam gde staviti text koji treba da ispise. Jeste da ne znam asembler, ali zar ovde ne piše da u al treba staviti ascii kod karaktera koji treba ispisati? Znači, karakter po karakter. Ili se možda varam?
asembler.41 pik.becej,
>>> al = ascii character to write >>> >>> Sve je to ok,jedino neznam gde staviti text koji treba da ispise. > > Jeste da ne znam asembler, ali zar ovde ne piše da u al treba staviti > ascii kod karaktera koji treba ispisati? Znači, karakter po karakter. > Ili se možda varam? Pa varas se,tu treba staviti kakav ce biti kursor koji ce ici ispred nekog teksta,znaci ako se stavi 65 ici ce slovo 'A' ispred svakog karaktera,najbolje je staviti 219 ...
asembler.43 kriss,
˙˙ Sve je to ok,jedino neznam gde staviti text koji treba da ˙˙ ispise. Moraš da uradiš preko petlje. Evo rešenja: ekran proc near p1: cld p01: lodsb or al,al jne p3 ret p3: push si mov ah,0eh ; <- e sad ovde izmeni, zaboravih već šta ti int 10h ; treba pop si jmp p01 endp I onda imaš nešto ovako: tekst: db "Proba",00 ; (Ne zaboravi 0 bajt na kraju!!) mov si,offset tekst call ekran ... i to bi bilo to (pišem veoma na brzinu, ali mislim da je OK). Ako nešto ne radi - javi. Ako treba da ti piše slovo po slovo (sa pauzama), valjda ćeš se snaći i ubaciti praznu petlju u proceduru ekran. :) Ako se svejedno ne snađeš, javi pa da objasnimo kako. :) Ali požuri, već od nedelje nisam tu na duže. :)
asembler.44 pik.becej,
> ... i to bi bilo to,ako nesto ne radi - javi. Pa radi samo sto pre texta izbacuje neke brljotine i ako mozes stavi da ispisuje slovo po slovo (i probaj dali radi pre nego sto posaljes listing), Umesto pauze mozes da stavis neki beep (to ce ga malo usporiti). I ako ti nije tesko posalji ceo listing a ne samo rutinu,jer neznam bas dobro assembler pa mozda ja pogresim na pocetku a kad asembliram samo rutinu nece da radi,ja na pocetku svakog programa stavim ... main segment assume cs:main,ds:main org 100h ....... ; ovde dalje neki program ends end main I mozda nemora to da se uradi u teletype modu (int 10 , ah,0eh) ali objasnio sam ti u prethodnoj poruci sta mi treba,pa ako znas na drugi nacin ... U svakom slucaju hvala ti.
asembler.45 markov,
Postoji li grupa koja se bavi assemblerom do krajnjih granica , ako me razumete sta mislim. Vrlo rado bih se pridruzio. MArko
asembler.46 kriss,
˙˙ Pa radi samo sto pre texta izbacuje neke brljotine i ako mozes ˙˙ stavi da ispisuje slovo po slovo (i probaj dali radi pre nego ˙˙ sto posaljes listing), ??? Kakve brljotine? Usput, da li si fajl koji sam poslao kompajlirao u com? Ako nisi, trebalo je. ;) Znači tasm trtmrt.asm, tlink /t trtmrt.ojb (ne zaboravi /t!). Možda si to već znao, možda i nisi, ali valjda će poslužiti nekom ko ne zna. :) Listing koji sledi _radi_ (kao com fajl). Nisam koristio tvoje oznake za segmente, baš sam u škripcu sa vremenom, potrudio sam se samo da sve bude OK. Nadam se da ćeš uspeti da ga prilagodiš svojim potrebama. :) .model tiny .code org 0100h start: jmp preko podaci: db "Proba.",00 ; 00 na kraju je obavezno. ekran proc near p1: cld p01: lodsb or al,al jne p3 ret p3: push si ; ; Ovaj deo usporava ispis (tako da ide slovo po slovo) ; mov cx,0ffffh ; Ako ti je sporo, smanji vrednost. p4: nop ; Ako ti je brzo, ubaci još koji nop :) loop p4 mov ah,0eh ; Valjda je ovo ono što ti treba? (teletype mode) int 10h ; ; ... a ovaj deo bipće :) ; mov al,07 int 10h pop si jmp p01 endp preko: mov si,offset podaci call ekran mov ah,4ch int 21h ret end start E sad, definitvno može i bolje, kraće, optimizovanije, ali to prepuštam tebi ili nekom drugom. :) So, javi kako ti odgovara. :) P.S. Ako ubaciš beep efekat, petlja kod mene (386/40) i nema baš smisla - usporenje je neznatno. E sad, ako hoćeš po jedno slovo u 2 sekunde, onda će imati. ;) Bez beep-a - hoće :)
asembler.47 nikac,
Jeste da je pitanje "malo" glupo ali ipak: Sta se desava kada interapt procedura koju okacim na clock koji se izvrsava 18.2 puta u sekundi traje duze od tog jednog tika?
asembler.48 evlad,
>> Jeste da je pitanje "malo" glupo ali ipak: >> Sta se desava kada interapt procedura koju okacim na clock koji se >> izvrsava 18.2 puta u sekundi traje duze od tog jednog tika? varijanta 1: Svaki put kada udje u interrupt upisace povratnu adresu na stack. Tako ce raditi dok ne prepuni stack (i ondak Ctrl-Alt-Del naravski). varijanta 2: Stalno ce se vrteti u tom interrupt-u. (ako zabranis ostale) varijanta 3: napisace oni koji znaju vise od mene.
asembler.49 pik.becej,
> E sad, definitvno moze i bolje, krace, optimizovanije, ali to > prepustam tebi ili nekom drugom. :) So, javi kako ti odgovara. :) Sto se tice brljotina za koje si pitao,zar kod tebe nije izbacivao brljotine na onom prvom listingu sto si poslao ili nisi ni probao, nema veze,bitno je da ovo radi,malo sam izmenio beep tako da je bolje uglavnom hvala ti na pomoci. Setih se da te pitam ako znas kako se menjaju boje ,znam da menjam modove ali neznam kako da tekst koji izlazi recimo bude u plavoj boji,drugi red u crvenoj itd.
asembler.51 dkrstic,
Molim dobre poznavaoce asemblera da obrate pažnju na poruku 1.28 u ovoj konferenciji. Hvala!
asembler.52 zolika,
> Molim dobre poznavaoce asemblera da obrate pažnju na poruku 1.28 u ovoj > konferenciji. To već imaš gotovo u nekim "Računarima", a ako želiš, imam sorsove u Moduli-2. Eh, Dragiša, što te nema...*sigh* :(
asembler.53 dkrstic,
Hvala. Već sam skinuo sa Sezama sors PGP-a - ima interesantnih rutina u C-u!
asembler.54 kriss,
Dva pitanja: Da li neko ima tabelu sličnu ovoj: 8086 (16 bit data bus, 20 bit adress bus) Instructions: (...) - (opis) (opis) (...) - (opis) (opis) 80286 (16 bit data bus, 24 bit adress bus) Instructions: (...) - (opis) (opis) ( dodate samo nove stvari, flegovi itd.) (...) - (opis) (opis) 80386 (...) i drugo: da li kod 386+ pali ovo: MOV EAX,AABBCCDDh
asembler.56 pedjak,
> da li kod 386+ pali ovo: > MOV EAX,AABBCCDDh Jes' da nemam 386, ali ne vidim razloga da ne radi.
asembler.58 mmitrovic,
Ů█▀█Ţ da li kod 386+ pali ovo: Ů█▀█Ţ MOV EAX,AABBCCDDh Može. Mogu i instrukcije tipa mov eax,gs:Šebx+edi*8+1200hĆ ;) (sorry za yuscii) Što se tiče DOCova koje si tražio, ja bi trebalo da imam Intelov DOC za 386 i 387 (ako nije stradao u poslednjoj disketnoj krizi) Međutim, dejan je u Računarima pisao o 486, pa pretpostavljam da ima isti takav fajl ali za 486. Pa dejane, ako ga imaš podeli ga sa nama ;) Inače svi ti fajlovi mogu da se nađu na anonymous FTP site-u intel.com za intelove i motorola.com za motoroline procesore, međutim ja nemam full internet access, pa ne mogu da ih skinem, so, ako neko ima nek skine DOC za pentium, pošto su ga do sada sigurno okačili.
asembler.59 kriss,
˙˙ Inače svi ti fajlovi mogu da se nađu na anonymous FTP site-u ˙˙ intel.com za intelove i motorola.com za motoroline procesore, Ma poskidajte sve (ako se već neko reši), pa nek stoje ovde, UVEK zatrebaju nekom ... U budućnosti makar kao istorijski podatak. :)
asembler.60 mmitrovic,
Jedna zanimljivost, ako već nije bila: tiče se AAD (opcode: D5 0A) i AAM (D4 0A) instrukcija, AAD uzima raspakovani BCD broj iz AX (desetice u AH, jedinice u AL) i pretvara ga binarni broj i stavlja u AL, a resetuje AH AL = AH*10d + AL AH = 0 pr. AAD (ax=0102h) posle toga će biti AX=000Ch AAM radi obrnuto dakle pretvara binarni broj u raspakovani BCD AH = AL div 10d AL = AL mod 10d ono što je zanimljivo je opcode (D4,5 "0Ah"), gde je ono 0A u stvari nedokumentovana osnova (0Ah=10d), i promenom tog bajta može se ostvariti konverzija u i iz drugih osnova pr. opcode D5 13h će uraditi sledeće: AL = AH*19d + AL AH = 0 jedino što asembleri ne podržavaju promenu tipa AAD 13h ili AAD AX,13h pa se mora ići preko: db D5h, 13h. Ova instrukcija, kažu u DOCu, ne radi na svim 80x86 kompatibilnim proc. primer ne radi na NEC V-seriji
asembler.61 ikordic,
RE: Početnik & asembler Molio bih znalce i iskusne programere, da mi preporuče literaturu i softver za jednog početnika u 80x86 asembleru. Dakle, koje knjige (papirne ili elektronske) su raspoložive kod nas i koji bi softver najbolje odgovarao za tako nešto.
asembler.62 mjova,
> RE: Početnik & asembler jugoslovenska knjiga, zgrada na početku kneza. tamo sam prošle godine video više knjiga o asm programiranju. što se tiče softvera, preporučujem tasam, mada je nebitno. tasm koristim po inerciji (iako je bolji od masm-a ;), ali za početak uzmi bilo šta.
asembler.64 mdimitrijevic,
HI! Znam da je o ovome bilo reci ( cak sam i ja slao nesto :) ali treba mi rutina u ASM-u koja kopira deo memorije od odredjenog segmenta na recimo segment A000h ( VGA video memorija ) preko DMA. Znam da u poruci 3.266 u PC.PROG.3 ima sors ali on ne radi. :(((( Zato ako neko zna kako to uraditi preko DMA neka mi posalje. Unapred zahvalan, Marjan
asembler.65 duzle,
>**> Znam da je o ovome bilo reci ( cak sam i ja slao nesto :) >**> ali treba mi rutina u ASM-u koja kopira deo memorije od >**> odredjenog segmenta na recimo segment A000h ( VGA video >**> memorija ) preko DMA. Ne znam da li će ti ovo pomoći, ali u zbirci (asm)snippets imass fajl koji opisuje kako se izvodi DMA transfer i mislim da ima i neki primer. Lično mi ovo nije trebalo ali ako želiš naći ću vremena da razgledam i isprobam.
asembler.66 mdimitrijevic,
Nema potrebe da isprobavas. Posalji mi samo taj fajl pa cu ja da se zezam sa tim. Sto vise raznih informacija imam to bolje. Pozdrav, Marjan
asembler.67 mmitrovic,
Ů█▀█Ţ Nema potrebe da isprobavas. Posalji mi samo taj fajl pa cu ja da se Ů█▀█Ţ zezam sa tim. Sto vise raznih informacija imam to bolje. Ima ovde još interesenata za taj fajl ;). Kači ga ovde.
asembler.69 mdimitrijevic,
Tek se sad javih :( Evo ga fajl koji sam dobio od DUZLE. Pozdrav, Marjan P.S. Pitanje i dalje vazi. Ima li neko neki primer u ASM za prenos podataka memory-to-memory preko DMA !!!!!! dma.arj
asembler.70 mdimitrijevic,
Zna li neko kako pomocu 32-bitnih instrukcija pomnoziti dva broja. jedan 32-bitni i drugi 32-bitni ali da ne izlaze iz opsega od 32-bita. I kako ih podeliti. E sad trebalo bi da mogu da se mnoze i dele i negativni brojevi. Pozdrav, Marjan P.S. moze to da se uradi na mnogo nacina ali mene interesuju 386+ instrukcije za to. Naravno bez koprocesora.
asembler.71 mmitrovic,
Ů█▀█Ţ Zna li neko kako pomocu 32-bitnih instrukcija pomnoziti dva broja. Ů█▀█Ţ jedan 32-bitni i drugi 32-bitni ali da ne izlaze iz opsega od 32-bita. I Ů█▀█Ţ kako ih podeliti. E sad trebalo bi da mogu da se mnoze i dele i Ů█▀█Ţ negativni brojevi. Deljenje i množenje u 32b modu ti je slično kao i u 16b. Jedino što moraš da navedeš kao operand neki 32b podatak. pr. DIV EBX (deli EDX:EAX sa EBX; vraća količnik u EAX, ostatak u EDX) IDIV ECX ( --//-- samo što se radi sa označenim brojevima) MUL ESI ( (EDX:EAX) := ESI*EAX ) IMUL (e ovda ima fešte :) IMUL op1 (mnozi op1 sa EAX i smešta u EDX:EAX) IMUL op1,op2 (množi op1 sa op2 i stavlja ga u op1, ako pretekne diže CF i OF) IMUL op1,op2,op3 (op1:=op2*op3, važe ista pravila za pretek. Jedino je problem što op3 mora biti konstanta) Znači samo tu imaš kontrolu da li je rezultat "uleteo" u 32 bita. Kod ostalih moraš da proveriš EDX.
asembler.72 mdimitrijevic,
E bas ti hvala. Bas se nesto namerio na ove 386+ procesore pa hocu da ih bolje upoznam. Pozdrav, Marjan
asembler.73 kanki,
Molio bih upućene da mi preporuče neku knjigu za učenje asemblera. goran
asembler.74 ikordic,
RE: Početnik => Molio bih upućene da mi preporuče neku knjigu za učenje asemblera. Pridružujem se molbi, imam neku omladinu koja me guši već par meseci po ovom pitanju. Daklem, neku knjigu u papirnoj ili elektronskoj formi i eventualno izvor gdi se može nabaviti.
asembler.75 kriss,
˙˙ Molio bih upućene da mi preporuče neku knjigu za učenje ˙˙ asemblera. Ako te ne mrzi, preturi malo i stare konferencije jer je ovo pitanje već zaslužilo da uđe u FAQ. Tamo preporučuju neku knjigu, a ja mogu da ti kažem dve stvari: - ja sam asembler "naučio" iz knjige Dejana Ristanovića "Asemblersko programiranje za 6502 i Z80" a za PC se korigovao za onim udžbenikom za četvrtu godinu srednje škole (pregledao naredbe) - uzmi TASM, kreni da pišeš svoj prvi program i spremi se na krv, znoj i suze.
asembler.76 mjova,
> Ako te ne mrzi, preturi malo i stare konferencije jer je > ovo pitanje već zaslužilo da uđe u FAQ. baš tako, u staroj pc.prog postoji jedna datoteka (a možda i više njih) koje se bave ovim problemom. naime, jedna se sigurno zove ASMHELP.* (ili tako nekako ;). u njoj je SUPER opisan asembler (nažalost 8086, a možda i 80286 - ne znam više), pa ovo uvek preporučujem kao početak, čak i onome koji nikad nije pisao ništa u asembleru. što se mene tiče, ja sam asembler naučio iz iskustva ;). imao sam spektruma i kasnije pazario mons & gens. najviše vremena sam provodio u monsu i *provaljivao* šta koja instrukcija radi. samo da pomenem, tada *nije bilo knjiga* u mojoj okolini - nisam imao gde da ih pazarim. dobro se sećam svog otkrića po imenu FLAGS ;). moj Bože, kako je to vreme imalo *dušu*. kao prvi problem koji sam rešavao bilo je štampanje teksta na ekran. RST #10 (jel tako beše?) je bilo očajno sporo, pa sam ubrzo napisao mnogo bolju rutinu. sad, ja nisam pojma imao šta je to RST, a ni mnogo toga drugog, pa sam jurio knjige i dalje. prva, i jedina knjiga, koju sam našao bila je DISASEMBLIRANI ROM, i pretpostavljam da je i danas većina Spektrum programera ima. tu knjigu sam dobio na poklon kopiranje (dakle, dobio sam je par dana da bih je kopirao), od tada čuvenog pirata Zorana Mošorinskog. isti je danas gl urednik SK. pored knjiga, u svom izlogu, zoran je imao i razne utl programe (hobbit, manic miner...). naravno, to je tada bilo popularno i skoro svako se time bavio. ono što je njega izdvajalo od drugih, je da se tih dana prebacivao na komodor, pa je delio sve ono što mu nije trebalo ;). drugo, mislim da je studirao nešto o računarima (jal pmf, jal etf). i tako, uz pomenutu knjigu, ja sam učio asembler analizirajući razne rutine roma. kasnije sam pisao i svoj rom, za centroniks, i to je radilo ko zmaj. i danas imam sve to, rado se setim, ali ovo vreme *nema* dušu. sve se dešava na silu i prevaru. možda sam se promenio, ali više me ništa ne fascinira kao spektrum tih dana.
asembler.77 dejanr,
>> i tako, uz pomenutu knjigu, ja sam učio asembler analizirajući >> razne rutine roma. kasnije sam pisao i svoj rom, za centroniks, i >> to je radilo ko zmaj. Hm, ja sam svoje programerske početke imao sa računarom TI-58, i to sa uputstvom na italijanskom koji pojma nisam imao... doduše, kupio sam i rečnik, to je mnogo pomoglo ;( >> i danas imam sve to, rado se setim, ali ovo vreme *nema* dušu. sve >> se dešava na silu i prevaru. možda sam se promenio, ali više me >> ništa ne fascinira kao spektrum tih dana. Možda su današnji računari prosto bili dovoljno jednostavni da su se mogli upoznati "u dušu". Za neki TI-58 si mogao napraviti program svetske klase za dva popodneva. Za neki Spectrum, naročito u početku, za par meseci. Za PC program svetske klase treba da piše tim ljudi, možda više godine. Zato sve to izgleda nedostižno...
asembler.78 kriss,
˙˙ njih) koje se bave ovim problemom. naime, jedna se sigurno ˙˙ zove ASMHELP.* (ili tako nekako ;). u njoj je SUPER opisan ˙˙ asembler (nažalost 8086, a možda i 80286 - ne znam više), pa ˙˙ ovo uvek preporučujem kao početak, čak i onome koji nikad nije ˙˙ pisao ništa u asembleru. Za početak je sasvim dovoljan 8086, a svaki 'upgrade' kasnije dolazi po potrebi, ili bolje rečeno vremenom. Postoji još jedna datoteka koja se zove asmtutor i ima je po sezamu (možda čak i u nekom diru), i tamo je fino objašnjeno sve najneophodnije za rad. ˙˙ moj Bože, kako je to vreme imalo *dušu*. Tačno. Ja sam u to doba bio neki osmi osnovne i večito sam se čudio kako se taj Z fleg postavi na jedan ako je rezultat neke operacije nula. :) A tek kad nema nikakvih operacija a on se opet postavi na 1! :) Kranji rezultat takvog otkrivanja 'tople vode' je specifičan osećaj koji se ne može opisati, a koji se neminovno razvije i koji u mutnim vodama uvek razdvoji teorijski perfektnog od samoukog praktičnog programera. ˙˙ i danas imam sve to, rado se setim, ali ovo vreme *nema* dušu. ˙˙ sve se dešava na silu i prevaru. možda sam se promenio, ali ˙˙ više me ništa ne fascinira kao spektrum tih dana. Tačno, *nema* dušu. Svi rade kao roboti, kretivnost je na nuli, želja za istraživanjem ispod nule. Svi čekaju da dobar program sam padne s neba. :(
asembler.79 dejanr,
>> > i danas imam sve to, rado se setim, ali ovo vreme *nema* dušu. >> > sve se dešava na silu i prevaru. možda sam se promenio, ali >> > više me ništa ne fascinira kao spektrum tih dana. >> >> Tačno, *nema* dušu. Svi rade kao roboti, kretivnost je na nuli, želja >> za istraživanjem ispod nule. Svi čekaju da dobar program sam padne s >> neba. :( Hm, vidim da ćemo u ORKA, pored teme 'najbolji', morati da otvorimo i temu 'stara.dobra.vremena' :) Ima nešto u tome što kažete, u tim danima su nam kompjuteri bili nešto sasvim novo i uzbudljivo. Međutim, sa njima se ništa pametno (šta god ta reč značila :) nije moglo uraditi. Kad treba da pišeš tekst, ajde na kasetu, posle neće kaseta da se učita, šteluj azimut, fuj. Najzad odštampaš na Seikoshi, pa u štampariji neće da prime da to slažu, kažu mnogo tačkasto :( Presedne ti posao, lakše bi ti bilo 100 puta da si kucao na mašini. Posle imaš disketu, pa kad treba da sortiraš 500 kilobajta podataka, ubiješ se kao ratno siroče da smisliš kako to da obaviš. Zoran (zz) može da vam priča kako je sortirao nekih par megabajta na Commodore PC-ju, danima menjajući diskete. Danas o svemu tome ne razmišljaš, kompjuter radi sam, i to dosta lepo :) Što se mene tiče, negde od 1988. ili 1989. kompjuter mi je postao mašina koja radi koristan posao. Možda sam je pre toga više "voleo", ali od tada mi znatno bolje služi :)
asembler.80 dpredovic,
> ˙˙ i danas imam sve to, rado se setim, ali ovo vreme *nema* > dušu. ˙˙ sve se dešava na silu i prevaru. možda sam se > promenio, ali ˙˙ više me ništa ne fascinira kao spektrum tih > dana. > > Tačno, *nema* dušu. Svi rade kao roboti, kretivnost je na nuli, > želja za istraživanjem ispod nule. Svi čekaju da dobar program > sam padne s neba. :( Jedini varijanta kojom ja mogu da objasnim pojavu Windows-a je da niko iz MalogMekog nikada nije video rutinu za "super-turbo-express-brzi" CLS na spektrumu. Takvo parče koda uvek će više da mi znači od bilo kojeg Knutha, Wirtha, Dijkstre ili Stroustrupa.
asembler.81 pbojan,
>> za par meseci. Za PC program svetske klase treba da pise tim >> ljudi, mozda vise godine. Zato sve to izgleda nedostizno... Pod uslovom da se pise bas sve "iz pocetka" ;). Koriscenjem naprednih alata se vreme moze znatno skratiti. Ja tipujem na tim od pet ljudi i manje od godinu dana za program svetske klase. Uz prethodna iskustva na nekom slicnom projektu, sest meseci.
asembler.82 mmitrovic,
Ů█▀█Ţ moj Bože, kako je to vreme imalo *dušu*. Amin. ;) Kad se setim (od pre nekih 6 godina) one "izborne nastave" kad su nam poslali nekog tipa da nam drži programiranje ;) Par postavljanja registara, i jedno LDIR (valjda tako beše), i voila eto ga sneg na ekranu :)). Matori je samo gutao knedle, a ja cvetam ;) Behu to vremena. Doduše kad se setim razredne, baš mi se i ne vraća u to doba ;).
asembler.83 sslavko,
Voleo bih da još neko proba ovo pa da mi javi da li sam to ja lud ili nešto nije u redu sa DOS-om. Naime, potrebno je pronaći tekuću poziciju u fajlu. To radim DOS funkcijom 42h (Move file pointer), i to tako da u AL stavim 1 (mod kretanja od tekuće pozicije), u par CX:DX stavljam 0 (pomeri se za 0 bajtova), i zovem int 21. On mi u paru DX:AX vraća novu poziciju, odnosno pošto se pomeram za 0 onda je to tekuća. Sve to lepo radi dok ne pređem 65535. Onda bi u DX trebalo da bude 1, jel tako. E, meni je u DX stalno 0!!! Seansa sa debagerom je pokazala da je DX stvarno 0 odmah nakon int 21. Napominjem da je Carry flag i dalje 0 što znači da nema greške prilikom pomeranja. Šta je u pitanju? Bag u DOS-u?? Verzija DOS-a je 6.0. Pozdrav Slavko. P.S. Ovo gore je provereno i na DOS-u 6.2 i na DR.DOS-u 6.0, i svuda je isto. Znači da ja negde grešim ali gde?
asembler.84 kanki,
>>˙˙ Molio bih upućene da mi preporuče neku knjigu za učenje >>˙˙ asemblera. >> >>Ako te ne mrzi, preturi malo i stare konferencije jer je ovo pitanje Malo sam zabrzao sa pitanjem... >>- uzmi TASM, kreni da pišeš svoj prvi program i spremi se na krv, znoj >>i suze. """"""""" """" Znam da je težak za učenje, ali brate ubi me u pojam :)
asembler.85 kriss,
˙˙>> - uzmi TASM, kreni da pišeš svoj prvi program i spremi se na ˙˙>> krv, znoj i suze. ˙˙ """"""""" """" ˙˙ Znam da je težak za učenje, ali brate ubi me u pojam :) :)) Ne daj se, nije sve tako crno. Crni su samo krv i znoj. ;)) Ne znam kako je kod drugih bilo, ali kod mene se situacija ovako odvijala: - naredbe su delovale prilično razumljivo, lako za pamtiti, neobavezujuće. - neke sitne nejasnoće su postojale (kako rezultat može da bude nula, ako ne vršim nikakvu aritmetičku operaciju?? hint: cmp ax,0 ako je ax=0) - i flegovi su bili jasni (relativno) - teorija je prošla bez puno muke. Ali! Onda sedam da napišem prvi program (više se ne sećam šta je to bilo, ali sigurno nije bio 'Hello, world!' - ili je bio, ali ga ja ne računam za prvi ;) i kreću muke. Te ne radi ovo, te ono, pa asembler prijavi 150 grešaka, pa kad sve prođe OK, program ne radi kako bi trebao - užas živi! E onda sedi, gužvaj se, i na kraju - rezultat! Radi!! Pa pauza, pa unapređivanje, proširivanje - ma sve je sad lako. E onda kreću drugi zalogaji, pa ista priča. :(( I tako jedno 5-6 puta, vremenski 5-6 meseci (sa recimo pauzom, dve od po mesec ;) i na kraju je već bilo bolje. Problem kod asm-a je što skoro nikad nisi načisto da li to radi ili ne. E onda vreme počne da čini svoje, pa na kraju ostane neki osećaj koji se sve više i više razvija (logično). Super, rek'o bi neko, mučiš se ali rezultat dođe. Svakako da dođe, ali kad na kraju uporediš vreme provedeno učeći i mučeći se sa asemblerom, i ukapiraŠ da si za to isto vreme mogao bar 2 i više puta da uznapreduješ u C-u, smuči ti se i odustaneš. To je prelomni trenutak, ili radiš do kraja ili odustaneš na početku. Kod mene taj početak još uvek traje, a dokle će nemamo pojma. ;) Generalno, u asembleru se ne isplati programirati, ali se itekako isplati naučiti ga - mnoge stvari kasnije nećeš ni razmišljati kako da izvedeš, same će se poka'sti. :) Jer osnova je osnova, i kasnije razumevanje viših programskih jezika je mnogo, mnogo lakše. :)
asembler.86 vitez.koja,
#=> izvedeš, same će se poka'sti. :) Jer osnova je osnova, i #=> kasnije razumevanje viših programskih jezika je mnogo, #=> mnogo lakše. :) Baš naprotiv, asemblersko razmišljanje kod upotrebe viših programskih jezika je mana.
asembler.87 omega,
Ţ Generalno, u asembleru se ne isplati programirati, ali se itekako Ţ isplati nauciti ga - mnoge stvari kasnije neces ni razmisljati kako da Neke stvari MORAJU da se programiraju u asembleru.
asembler.88 evlad,
>> Baš naprotiv, asemblersko razmišljanje kod upotrebe viših >> programskih jezika je mana. Zavisi na koje više programske jezike misliš ! C ili Clipper ;)
asembler.89 neman,
># => izvedes, same ce se poka'sti. :) Jer osnova je osnova, ># i => kasnije razumevanje visih programskih jezika je ># mnogo, => mnogo lakse. :) > > Bas naprotiv, asemblersko razmisljanje kod upotrebe visih > programskih jezika je mana. Secam se jednog slucaja "Joj, pa ovde ima tipove podataka, kazes Char i picis" :))) Asm -> C
asembler.90 bceklic,
> Generalno, u asembleru se ne isplati programirati, ali se > itekako isplati nauciti ga - mnoge stvari kasnije neces ni > razmisljati kako da izvedes, same ce se poka'sti. :) Jer osnova > je osnova, i kasnije razumevanje visih programskih jezika je > mnogo, mnogo lakse. :) U asembleru mogu da napisem sve sto pozelim i da mi pri tome treba manje vremene nego recimo u TP-u. Naravno ovo vazi za manje projekte ( < 5.000 linija koda) dok za vece projekte treba koristite neki od visih jezika i posebno ukljucivati asemblerske procedure i funkcije. Sto se tice samog razmisljanja ne mogu u potpunosti da se slozim. Kako duze vreme radim u asembleru a trenutno citam Rick Spence-a (Clipper) moram priznati da mi nije ni malo lako...;) POzdrav!
asembler.91 pedjak,
> U asembleru mogu da napisem sve sto pozelim i da mi pri tome treba > manje vremene nego recimo u TP-u. Naravno ovo vazi za manje projekte > ( < 5.000 linija koda) dok za vece projekte treba koristite neki od Zato što imaš već razvijene biblioteke.
asembler.92 bceklic,
>> U asembleru mogu da napisem sve sto pozelim i da mi pri tome >> treba manje vremene nego recimo u TP-u. Naravno ovo vazi za >> manje projekte ( < 5.000 linija koda) dok za vece projekte > treba koristite neki od > > Zato sto imas vec razvijene biblioteke. U svakom od mojih programa pisanih u asembleru koristim samo moje externe funkcije i procedure. Nikakve 'strane' biblioteke. Naravno za razvoj ovih procedura je trebalo vremena ali se citav posao pre ili kasnije isplati. POzdrav!
asembler.93 sslavko,
Molio bih cenjeni auditorijum da obrati pažnju na moju poruku broj 4.83. Verujem da će neko naći malo vremena da se pozabavi mojim problemom. Hvala.
asembler.94 kriss,
Problem: - turbo dibager niz bajtova 83 BC 16 00 00 "vidi" kao instrukciju cmp word ptr ds:[si+0016],0000 - kada se to bukvalno prepiše i napravi COM fajl, tamo stoji 83 7C 16 00 znači em različito em skraćeno. OK, jedan bajt uštede, super, ali ja baš hoću da mi se dotična naredba prevede u prvi niz. Da li neko zna šta je u pitanju, i kako da prevarim asembler? Usput, ovo se događa i sa nekim drugim instrukcijama, naročito sa onima u kojima figuriše [si+xxxx].
asembler.95 mjova,
> 83 BC 16 00 00 > 83 7C 16 00 radi se o memorijskom modelu u kome prevodiš prg. > cmp word ptr ds:[si+0016],0000 oznaka cmp je zapravo procesorska instrukcija 83, iza nje treba da sledi oznaka prvog operanda. sad, pošto je prvi u fazonu [SI+n], onda postoje više mogućnosti: SI = 3c SI + 8-bitni indeks = 7c SI + 16-bitni indeks = bc e, sad, ako hoćeš da ti se baš to nađe u kodu, onda možeš uraditi verovatno neku magiju ;), ili da skratiš muku i napraviš nešto poput: db 083h, 0bch, 16h... kad malo bolje pogledam, ovo može zavisiti i od nekakve optimizacije, a i od modela u kome prevodiš dati program.
asembler.96 kriss,
˙˙ radi se o memorijskom modelu u kome prevodiš prg. ˙˙ ˙˙> cmp word ptr ds:[si+0016],0000 Aha, jasno ... ˙˙ e, sad, ako hoćeš da ti se baš to nađe u kodu, onda možeš ˙˙ uraditi verovatno neku magiju ;), ili da skratiš muku i ˙˙ napraviš nešto poput: ˙˙ ˙˙ db 083h, 0bch, 16h... Ovo dole sam radio dok mi se nije smučilo ... više bi me zanimala magija. ;) Nego sve mi se čini da bi ovakva stvar morala da se dokumentuje, i da bi asembleri (bolji) morali da imaju neku pseudo instrukciju. Sad je magija naći je ... ;((
asembler.97 nbulatovic,
> e, sad, ako hoćeš da ti se baš to nađe u kodu, onda možeš uraditi > verovatno neku magiju ;), ili da skratiš muku i napraviš nešto > poput: mozes pomo°─cu neke asemblerske direktive da naglasis da se radi bas o onom tipu koji ti hoces (nesto kao BYTE, WORD, BYTE PTR, WORD PTR). NB
asembler.98 drpr,
Imam pitanje za sve ljude koji se bave pisanjem u assembleru: Zanima me da napišem recimo programče "hello world" ali da to radi sa 32-bitnim instrukcijama. Znači da u tasmu stavim gore jedno .386 i da to sve lepo radi. Da li se neko bavio ovim i kako se to radi jer meni ne uspeva. cope
asembler.99 duzle,
Evo ga .asm source za 3D rotaciju objekta. Uz njega ;) dolazi i mali .txt u kome je sve objasnjeno. Enjoy. :) Ogi 3dsource.arj
asembler.100 duzle,
MODSRC.zip je arhiva koja sadrzi .asm source za sviranje (pogadjate) .mod fajlova. Enjoy. Ogi modsrc.zip
asembler.101 maksa,
>> Imam pitanje za sve ljude koji se bave pisanjem u >> assembleru: Zanima me da napišem recimo programče "hello >> world" ali da to radi sa 32-bitnim instrukcijama. Znači da u >> tasmu stavim gore jedno .386 i da to sve lepo radi. Da li se >> neko bavio ovim i kako se to radi jer meni ne uspeva. Da li si na kraju stavio .8086 ? Ne trošim čist asm, samo u poneki CPP ubacim 32-bitni inline asm, i to sasvim fino (i do 2 puta brže :) radi, al' mi se i tu javlja problem. Na pr., na početku C/CPP programa stavim #pragma inline, što bi značilo da taj modul treba da prevede asemblerom. On prevodi, prevodi, prevodi, i na kraju TASM prijavi grešku u stilu 'Neadekvatna naredba za procesor ... ' i namesti se kod naredbe leave u asm listingu koji je generisao. Ovo se dešava samo kad prevodim iz IDE-a (3.1). Iz komandne linije se sve prevede i radi ok. Je l' zna neko šta treba da navedem u Transfer opcijama TASM-a, pa da i iz IDE-a funkcioniše kako treba ?
asembler.102 brus,
Verovatno je bilo 100x ali mi hitno treba... Da li neko zna kako da deinstaliram rezidentni program iz memorije. Prvi deo oko deinstalacije vektora je ok. 1. Proverim da li tekuci vektor za odredjeni int pokazuje na moju rutinu 2. Ako pokazuje, zabranim intove (cli) i prebacim na stari int-vektor Medjutim, sta dalje (treba mi da oslobodim memoriju) ?
asembler.103 andrejt,
Q> Medjutim, sta dalje (treba mi da oslobodim memoriju) ? Nije assembler ali pogledaj poruku iz PC.P.3 8.677.