Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Assembly - strojový kód  (Přečteno 5213 krát)

Matesax

  • Host
Assembly - strojový kód
« kdy: 18 Dubna 2013, 15:28:50 »
Dobrý den,
neexistuje malá ulitka, co by JEN nahradila Assembly za strojový kód? (Jen se chci trochu vzdělat kolem strojového kódu.)
Děkuji.

Myrmica

  • Závislák
  • ***
  • Příspěvků: 1701
    • MYRMICA
Re:Assembly - strojový kód
« Odpověď #1 kdy: 18 Dubna 2013, 17:49:09 »
To není tak jednoduché.
Pro překlad z JSA do strojového kódu je možno použít NASM.
GCC pro překlad z JSA do strojového kódu používá třeba GNU Assembler.
Ale malá utilitka? Nevím co si pod tím představuješ.
Jestli se chceš učit, pak tady jsou základy: Programujeme v jazyce Assembler v Linuxu
No s JSA a assemblerem už jsem hezky dávno nedělal, nemám k tomu důvod. JSA je vhodné použít jen v místech, kde je požadavek přesný sled instrukcí a jejich časování (které stejně je různé u různých procesorů) aniž by se toho týkala optimalizace kódu. Programování JSA je pracnější než v kterémkoli vyšším programovacím jazyce.
Stolní strojek: OS– UBUNTU 16.04 x86_64, MB ASUS P8 Z68-V/GEN3, Intel® Core™ i5-3470 CPU @ 3.20GHz × 4 , 16GiB DDR3, GeForce GTX 670...
Notebook: ASUS U53Jc OS– UBUNTU 16.04 x86_64, Windows 7, Processor – Intel Core i5-460M (2,53 GHz), Graphics – switchable NVIDIA GeForce 310M and Intel GMA HD

Matesax

  • Host
Re:Assembly - strojový kód
« Odpověď #2 kdy: 18 Dubna 2013, 18:02:26 »
Ale JSA právě, že umím... :) Jen se chci maximálně přiblížit k strojovým mechanismům... NASM nahrazuje JSA lidský kód do strojového, ale následně do nějaké formy. Já bych se chtěl jen podívat na strojový kód...

Jak vidím jazyk Assembler, nehodlám to číst. Assembler není jazyk - když někdo plete toto, kdo ví, co dalšího plete... :) Ve vyšších jazycích jsem začínal - a dostal se až k JSA... (.NET - C#, F#, J#,...; C/C++, SmallTalk, CommonLisp, Python, Ruby, Lua, Bison & Flex,...) A nyní dělám vlastní OS - SMA-OP a zase po čase jsem se vrátil k JSA - původně jsem psal v C, ale když nyní začínám znova (už po 11 přepisuji jádro), dělám téměř kompletně v JSA. Tedy udělal jsem si vlastní jazyk, který chci dotáhnout až na virtuální stroj - již teď mám cosi jako bytecode. Takže hodně věcí je přímo v JSA (dělám něco jako Framework), a také rozjíždím ten svůj jazyk - uvažuji o názvu Selan.
« Poslední změna: 18 Dubna 2013, 18:10:27 od Matesax »

jmp

  • Host
Re:Assembly - strojový kód
« Odpověď #3 kdy: 18 Dubna 2013, 19:57:15 »
Ale JSA právě, že umím... :) Jen se chci maximálně přiblížit k strojovým mechanismům... NASM nahrazuje JSA lidský kód do strojového, ale následně do nějaké formy. Já bych se chtěl jen podívat na strojový kód...

Jak vidím jazyk Assembler, nehodlám to číst. Assembler není jazyk - když někdo plete toto, kdo ví, co dalšího plete... :) Ve vyšších jazycích jsem začínal - a dostal se až k JSA... (.NET - C#, F#, J#,...; C/C++, SmallTalk, CommonLisp, Python, Ruby, Lua, Bison & Flex,...) A nyní dělám vlastní OS - SMA-OP a zase po čase jsem se vrátil k JSA - původně jsem psal v C, ale když nyní začínám znova (už po 11 přepisuji jádro), dělám téměř kompletně v JSA. Tedy udělal jsem si vlastní jazyk, který chci dotáhnout až na virtuální stroj - již teď mám cosi jako bytecode. Takže hodně věcí je přímo v JSA (dělám něco jako Framework), a také rozjíždím ten svůj jazyk - uvažuji o názvu Selan.
pokud chcete být opravdu hyperkorektní a nepoužívat assembler v širším kontextu i pro označení jazyka, tak pozor na to, že ani assembly není správně, protože to samo o sobě nedává smysl

assemly language, nebo jazyk symbolických adres (či instrukcí) už smysl dává...

 ;D

Matesax

  • Host
Re:Assembly - strojový kód
« Odpověď #4 kdy: 18 Dubna 2013, 20:18:58 »
Proto nepoužívám Assembly, ale JSA... :) Přečti jsi co jsi citoval - kde se tam bavím o Assembly? Ty tam vidíš nějakou zmínku o něm? Navíc GNU definuje Assembly jako cokoliv, co není zdrojovým kódem...

Citace
assemly language, nebo jazyk symbolických adres (či instrukcí) už smysl dává...

"nebo jazyk symbolických adres"

Jazyk Symbolických Adres => JSA

A chceš-li mě chytat za název tématu - je zkrácen kvůli délce...
« Poslední změna: 18 Dubna 2013, 20:27:10 od Matesax »

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Assembly - strojový kód
« Odpověď #5 kdy: 18 Dubna 2013, 20:31:20 »
Proto nepoužívám Assembly, ale JSA... :) Přečti jsi co jsi citoval - kde se tam bavím o Assembly? Ty tam vidíš nějakou zmínku o něm? Navíc GNU definuje Assembly jako cokoliv, co není zdrojovým kódem...

Citace
assemly language, nebo jazyk symbolických adres (či instrukcí) už smysl dává...

"nebo jazyk symbolických adres"

Jazyk Symbolických Adres => JSA

Ta inkriminovaná citace to třeba neobsahuje, ale původní doaz a řada dalších na tomto fóru ano. Pokud někdo pužije Assembler, tak o tom zpravidla ví víc, než ten co používá v češtině Assembly a přečetl si o tom před týdnem ;)

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Re:Assembly - strojový kód
« Odpověď #6 kdy: 18 Dubna 2013, 20:32:13 »
GCC a kompilátor od IBM (nevím jak ostatní) umí vyrobit tzv "listing", neboli textový soubor, kde jsou vidět jak kody instrukcí, tak jejich parametry, tak nahrazené adresy, bázové registry a podobné věci... k nezaplacení.

Viz screenshot části triviálního hello world...


Proto nepoužívám Assembly, ale JSA... :) Přečti jsi co jsi citoval - kde se tam bavím o Assembly? Ty tam vidíš nějakou zmínku o něm? Navíc GNU definuje Assembly jako cokoliv, co není zdrojovým kódem...
Dobrý den,
neexistuje malá ulitka, co by JEN nahradila Assembly za strojový kód?

[příloha smazaná administrátorem]
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

Matesax

  • Host
Re:Assembly - strojový kód
« Odpověď #7 kdy: 18 Dubna 2013, 20:35:18 »
GdH

Blbost... Dříve než jsem dělal OS, jsem už pracoval na tom svém jazyku. (Tehdy jsem pracoval v .NET.) A hádej do čeho jsem parsoval? JSA... Ještě před tím do IL, ale nedokázal jsem pohnout s mnoha strukturami. Zalekl jsem se parsovat do strojového kódu, ale JSA - to je přeci jen lidštější... No a pak v tom svém OS jsem dělal boot sector, file system, atd...

http://en.wikipedia.org/wiki/Common_Intermediate_Language

Martin "sachy" Šácha

Přesně to jsem měl na mysli... Děkuji!
« Poslední změna: 18 Dubna 2013, 20:42:01 od Matesax »

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Re:Assembly - strojový kód
« Odpověď #8 kdy: 18 Dubna 2013, 20:44:44 »
Blbost... Dříve než jsem dělal OS, jsem už pracoval na tom svém jazyku. (Tehdy jsem pracoval v .NET.) A hádej do čeho jsem parsoval? JSA... Ještě před tím do IL, ale nedokázal jsem pohnout s mnoha strukturami. Zalekl jsem se parsovat do strojového kódu, ale Assembly - to je přeci jen lidštější...
JSA - ty vtipálku, zkus na nějakém foru vykládat o JSA a roznesou tě v zubech. Nejdřív si *prosím nastuduj *anglické názvosloví a pak viř vody.

Až budeš vědět co znamená a jak se zachízí s následujícími termíny, tak se můžeme bavit dál:
HLASM, assembler instruction, machine instruction, base register, supervisor call, RBA, opcode, CSECT, DSECT, RSECT...

Díky
« Poslední změna: 18 Dubna 2013, 20:47:57 od Martin "sachy" Šácha »
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

Matesax

  • Host
Re:Assembly - strojový kód
« Odpověď #9 kdy: 18 Dubna 2013, 20:48:37 »
http://cs.wikipedia.org/wiki/Jazyk_symbolick%C3%BDch_adres

"Jazyk symbolických adres (zkratka JSA, anglicky assembly language) nebo také jazyk symbolických instrukcí"

Sorry - ale opravdu vím, o čem mluvím... Vždy jsem používal zkratku JSA, nebo zkrácenou verzi Assembly Language - Assembly. Nikdo s tím problém neměl...

Pojmy co jsi vypsal znám... Bez poloviny z nich bych si ani neškrtl... Až dodělám nové jádro, pošlu ti svůj OS. Snad ti spadne čelist... :)
« Poslední změna: 18 Dubna 2013, 20:51:37 od Matesax »

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Re:Assembly - strojový kód
« Odpověď #10 kdy: 18 Dubna 2013, 23:32:30 »
Jinak odpověd na tvou úvodní otázku - asm do load modulu (=binárky) převádí kompilátor ("binarizuje" instrukce) a linker (dopočítá externí adresy). Posloupnost preprocesor->compilátor->binder/linker se zachovává všude... JIT/VM/LLVM neberu v úvahu, tam je to složitější ;)
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

Myrmica

  • Závislák
  • ***
  • Příspěvků: 1701
    • MYRMICA
Re:Assembly - strojový kód
« Odpověď #11 kdy: 19 Dubna 2013, 00:13:31 »
Jen se usmívám nad tím jak se dohadujete nad zkratkou JSA a jejím významem, používá-li se.. Osobně JSA znám a používám už déle než mnozí z Vás jsou na světě. Znám ho z vysoké školy už z počátku 80. let minulého století :) .

Na moderních procesorech v drtivé většině případů není nutno používat JSA, ale velmi zajímavé a poučné je vidět, jak se program ve vyšším jazyku přeloží do strojového kódu vyjádřeného právě pomocí JSA. (Mnoho debuggerů to umí...)
Stolní strojek: OS– UBUNTU 16.04 x86_64, MB ASUS P8 Z68-V/GEN3, Intel® Core™ i5-3470 CPU @ 3.20GHz × 4 , 16GiB DDR3, GeForce GTX 670...
Notebook: ASUS U53Jc OS– UBUNTU 16.04 x86_64, Windows 7, Processor – Intel Core i5-460M (2,53 GHz), Graphics – switchable NVIDIA GeForce 310M and Intel GMA HD

Matesax

  • Host
Re:Assembly - strojový kód
« Odpověď #12 kdy: 19 Dubna 2013, 05:56:07 »
Jak zmiňuji výše, ve vyšších jazycích jsem začínal... Postupně však můj pohled přecházel k OS. Vždy jsem se prvně naučil programovat v nějakém jazyce, než se dostavilo pochopení jeho principů - to uznávám. (Ve vyšším jazyce to vůbec není problém - zvlášť když už jsem znal principy programování.) Nakonec se mi podařilo dostal až k JSA... A to když jsem si hrál s DOSem - prvně FreeDOS a pak DOSCORE. Jak už jsem tu někde psal - inspiroval jsem se v asi 6. jádře svého OS. Časem mi docházelo, že realtime nebude ono. Proto jsem si vymyslel vlastní režim - OP - operative. Když jsem tam začal strkat kernel (Unix), tak jsem jej pojmenoval SMA - a to právě kvůli JSA... (symbolic Matěj Andrle - nedařilo se mi dát do kupy JSA + MA - nejdříve vyšlo JSMA, pak už jen SMA) => SMA-OP Už v té době se mi znelíbily vyšší jazyky typu .NET jazyků. A zkusil jsem tedy spojit DOS a Unix - tedy prakticky Unixové vyšší elementy v DOSu...Nakonec mi ale nezbylo, než si detekci hardwaru udělat sám. Atd. Bylo by to na delší post - a já momentálně nestíhám...
« Poslední změna: 19 Dubna 2013, 06:06:12 od Matesax »

 

Provoz zaštiťuje spolek OpenAlt.