assembler

2

assembler

offline
  • bocke  Male
  • Moderator foruma
  • Glavni moderator Linux foruma
  • Veliki Pingvin
  • Guru
  • Pridružio: 16 Dec 2005
  • Poruke: 12365
  • Gde živiš: Južni pol

Napisano: 28 Jan 2013 22:01

Milos CG ::Zanima me MS-DOS Assembler,Windows naravno Wink

Dve različite stvari. Smile 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? Bebee Dol
Ok,onda mi posalji za pocetnike,mislio da da assembler nije toliko "razgranat" Wink
Stvarno trazim,ali ne mogu da nadjem kodove Confused ,znaci nesto za pocetak.

Hvala Ziveli


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.
offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4564

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).



offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

Gledajte,prvo mi treba neki kompajler tj. program gdje cu da upisujem kodove assemblera Wink

Ja sam mislio,posto znam da sa assemblerom zadajem naredbe procesoru,da napravim neki primitivni program,pa da mu polako dodajem funkcije OS-a.Ali posto su mi vasi izrazi nepoznati,treba mi nesto da procitam uopsteno o Assembleru Smile

1.Uopsteno o Assembleru.
2.Vrsta assemblera kojim cu moci da napisem taj program (koji sam pomenuo gore).
3.Kompajler.

Ziveli Ziveli

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14721
  • Gde živiš: Niš

Koliko sam ja upoznat, asemblerski kod se ne kompajlira.

Inače, Miloše, kompajler nije "program gdje upisuješ kodove". Wink

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

Pa 'ajde mi objasni tolko' kolko' si ti upoznat Wink

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4564

Eto, ne znaš ni šta je kompajler, a želiš da radiš sa Assemmbler-om Wink Kompajler je prevodilac, tj., kompajler prevodi programski jezik u binarni kod ( niz jedinica i nula iliti kompjuterski jezik).

Dakle, tebi treba MASM32:



U kompajler korisnik ništa ne piše.

offline
  • 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.

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

vasa.93 ::
Inače, Miloše, kompajler nije "program gdje upisuješ kodove".

E.L.I.T.E. ::Eto, ne znaš ni šta je kompajler, a želiš da radiš sa Assemmbler-om.

Pfff
Vjerovatno bi mi trebalo 100 godina da vam dokazem da sam se pogresno izrazio

Svejedno,smatrajte da znam sta je kompajler

Mila_90@

Skapirao sam sta je mikroprocesor,ali me najvise muci sintaksa,primjeri koje sam gledao su vrlo zeznuti Confused .A i nisam se bas snasao na ove linkove,jos su me vise zbunili GUZ - Glavom U Zid Treba mi skripta komandi (osnovnih i slozenih) pa cu kasnije po tutorijalima da se snadjem Wink

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4564

Milos CG :: Treba mi skripta komandi (osnovnih i slozenih) pa cu kasnije po tutorijalima da se snadjem Wink

Pogledaj malo bolje ono što ti je Mila_90 dala. Moraš prvo da shvatiš kako računar funkcioniše i kako funkcioniše Assemmbler. Jedan lik se tako zezao sa Assemmbler-om i oišao mu komp u .....

Već si na SKL pisao nešto o podacima, to ti je dobra osnova. Nismo ovde da se svadjamo sa tobom već da ti pomognemo Ziveli

Nemaju tu posebne skripte, eto, u MASM:

.386 .systemflat include -II- -II- -II- .data start program, sadržaj dodatne funkcije end start

Mislim da sam te razumeo, hteo si reći IDE, ali si umesto toga rekao kompajler što je metaforički isto, ali tehnički nije Razz

offline
  • Miloš
  • 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 Wink

.386 .systemflat include -II- -II- -II- .data start program, sadržaj dodatne funkcije end start

sadrzaj , dodatne funkcije - Trebam kod! Wink

Ko je trenutno na forumu
 

Ukupno su 861 korisnika na forumu :: 43 registrovanih, 10 sakrivenih i 808 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., ccoogg123, darkangel, dejoglina, draganl, dragoljub11987, Fog of War, Frunze, Gama, gorican, Gosha101980, haris1913, indja, ivica976, krkalon, kunktator, ladro, Litostroton, Lord Nem, maiden6657, mercedesamg, milan47, Mixelotti, nedeljkovici, nemkea71, nobutado, ofbeyond, pein, Pikac-47, Pohovani_00, promajauglavi, robertino, Rocker, slonic_tonic, stegonosa, suton, Tas011, Van, vathra, vranjanac29, vsn111, wolf431, wulfy