Poslao: 28 Jan 2013 22:17
|
offline
- bocke
- Moderator foruma
- Glavni moderator Linux foruma
- Pridružio: 16 Dec 2005
- Poruke: 12533
- Gde živiš: Južni pol
|
Napisano: 28 Jan 2013 22:01
Milos CG ::Zanima me MS-DOS Assembler,Windows naravno
Dve različite stvari. DOS ima svoj (doduše primitivan i low level) "API", Windows ima svoj, dosta kompleksniji. Naravno, ako ti je poznata razlika između pravog MS DOSa i Windows komandnih aplikacija. Programiranje 32-bitnih komandnih aplikacija se vrši korišćenjem odgovarajućeg dela Win32 API-ja. Nema veze sa 16-bitnim DOS aplikacijama.
Dopuna: 28 Jan 2013 22:09
Milos CG ::Jel da?
Ok,onda mi posalji za pocetnike,mislio da da assembler nije toliko "razgranat"
Stvarno trazim,ali ne mogu da nadjem kodove ,znaci nesto za pocetak.
Hvala
Asembler se (manje-više) direktno prevodi u mašinski kod. Jedna asembler instrukcija = jedna binarna komanda. To znači i da zavisi od tipa procesora. A dodatno zavisi i koje vrste aplikacija želiš da razvijaš. Recimo, kada su u pitanju moderni operativni sistemi, moraš da koristiš priložene API-je, pošto je direktan pristup hardveru ograničen. Za DOS to ne važi. DOS je u osnovi 16-bitni sistem bez ikakve protekcije. Iako postoje određene ekstenzije koje omogućavaju korišćenje ovih mogućnosti (32-bitni zaštićeni režim) za pojedinačne aplikacije. Elem to znači da je u DOSu moguć direktan pristup hardveru. Ali kod modernih operativnih sistema kao što je Windows XP (i noviji) to nije moguće. Dakle pored osnova asemblera, potrebno je da poznaješ i Win32 API. Samo poznavanje instrukcija procesora nije toliko bitno. Bar ne u početku. Ono što se u praksi najviše koristi su obično "matematičke" (ne znam kako ovo bolje da objasnim) i multimedijalne ekstenzije.
Dopuna: 28 Jan 2013 22:10
Za tutorijale baci pogled ovde:
https://www.google.com/search?q=win32+assembly+nasm
Dopuna: 28 Jan 2013 22:17
bocke ::Samo poznavanje instrukcija procesora nije toliko bitno. Bar ne u početku.
Krivo sam se izrazio ovde. Svaki procesor ima svoje instrukcije. Ono što sam hteo da kažem je da ti je potrebno osnovno poznavanje instrukcija i samog načina kako asembler za određeni procesor/arhitekturu funkcioniše.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 16 Feb 2013 22:36
|
offline
- E.L.I.T.E.
- Legendarni građanin
- Pridružio: 23 Maj 2012
- Poruke: 4575
|
Ja sam radio neko vreme sa MASM. Preporučio bih ti da ne ulaziš u te vode, sem ako nemaš iskustvo nekog čuknutog programera ili si savladao sve tehnike C, C++ i eventualno još nekih jezika pa ti je dosadilo. Ne znam kako to funkcioniše sa ostalima, ali na MASM potrebno je linkovati objekat, pa fajl, pa onda u Komandnu Tablu upisati direktorijum i program biva debagovan. A što se tiče brzine, nema šta loše da kažem, kao iz topa (kao što je bocke napomenuo mašinski kod - funkcioniše direktno sa procesorom pa ga to i ubrzava).
|
|
|
|
|
Poslao: 17 Feb 2013 12:16
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Koliko sam ja upoznat, asemblerski kod se ne kompajlira.
Inače, Miloše, kompajler nije "program gdje upisuješ kodove".
|
|
|
|
|
|
Poslao: 17 Feb 2013 16:03
|
offline
- Mila_90
- Ugledni građanin
- Pridružio: 25 Apr 2006
- Poruke: 322
|
Da bi mogao da se bavis pisanjem asemblerskog koda, morao bi i da se upoznas sa osnovama mikroprocesora (a pre toga osnovnim stvarima iz arhitekture racunara, pojmom prekida, odnosno interrupt-a itd), jer je asembler veoma blizak masini (za razliku od visih programskih jezika na koje si navikao).
Nije lose poceti od 8086 mikroprocesora i 8086 asemblera, jer su najjednostavniji za pocetnike.
A kada naucis osnovne paradigme, lako ces moci da predjes na slozenije, savremene sisteme.
Ovde su neki od sajtova koje sam koristila u ucenju su:
Registri 8086 mikroprocesora
http://www.compeng.dit.ie/staff/tscarff/8086_registers/8086_registers.html
Flagovi
http://www.cs.binghamton.edu/~sgreene/cs220-2003f/topics/class05/notes01.html
Sve instrukcije 8086 asemblera
http://www.muslim-programers.com/1/inst.html
Modovi adresiranja
http://www.electronics.dit.ie/staff/tscarff/8086_a....._modes.htm
http://www.ic.unicamp.br/~celio/mc404s2-03/addr_modes/intel_addr.html
DOS interrupts
http://www.computing.dcu.ie/~ray/teaching/CA296/no.....rupts.html
Za pocetnicko pisanje asmeblerskog koda, vise ti je nego dovoljan Notepad ++ i emulator za dati mikroprocesor, recimo http://ziplib.com/emu8086/, koji uz sebe ima veliki broj primera pisanih u asembleru, a u svakom trenutku mozes videti sadrzaj registara i memorijskih lokacija. Mada sam umesto toga koristila jedan Proteus simulator, u kome prvo napravis semu (dodas sam procesor, kontroler prekida, serijski port, paralelni port, tastaturu, displej, povezes ih) i na tome isprobavas asemblerski i C kod koji si pisao za to.
|
|
|
|
|
|
Poslao: 17 Feb 2013 20:26
|
offline
- Miloš CG
- Super građanin
- Pridružio: 23 Maj 2011
- Poruke: 1069
|
E.L.I.T.E. ::
Već si na SKL pisao nešto o podacima, to ti je dobra osnova.
Ja osnovu znam,ali ne znam na sta vi mislite
.386
.systemflat
include
-II-
-II-
-II-
.data
start
program, sadržaj
dodatne funkcije
end start
sadrzaj , dodatne funkcije - Trebam kod!
|
|
|
|