as (Unix)

(Ohjattu sivulta AT&T-syntaksi)

as (lyhenne sanoista assembler) on Unix-käyttöjärjestelmän assembler-kääntäjän nimi.

Ohjelman ensimmäisen version Unixia varten teki Ken Thompson PDP-7:lle käyttöjärjestelmän kehityksen varhaisessa vaiheessa.[1] Ensimmäinen versio oli hyvin minimalistinen, joka tuotti kiinteällä nimellä (a.out) ohjelman joka oli suoraan ajettavissa.[1] Myöhempi PDP-11:n alustalle tehty versio noudatti DEC:in PAL-11R-kääntäjän syntaksia.[2]

Unixia siirrettäessä Interdata 8/32 -tietokoneelle assembler-kääntäjä oli yksi asia, joka ei ollut siirrettävissä: muun muassa tavujärjestys ja liukulukumuoto poikkesivat PDP-11:ssä käytetystä ja kääntäjän piti toimia eri tavoin riippuen siitä, kummalla alustalla sitä ajettiin.[3]

VAX-11:ssä toteutetun Berkeley Unixin (BSD) as:n pääasiallinen käyttötapaus oli kääntää C-kielen kääntäjän tuottamaa ohjelmakoodia, ja se sisälsi vain vähän myönnytyksiä ihmisten kirjoittaman koodin tuelle.[4]

as käyttää niin sanottua AT&T-syntaksia, jota myös useat muut assembler-kääntäjät tukevat, mutta joka eroaa Intelin käyttämästä syntaksista.[5][6][7]

Vaihtoehtoisia toteutuksia ovat muun muassa GNU-projektin GNU Assembler ja nasm.[7] Merkittäviä eroja syntaksissa ovat muun muassa:[7]

  • lähde- ja kohdeoperandin järjestys
  • välittömät arvo-operandit: $-merkin käyttö AT&T-syntaksissa (movl $4, %eax)
  • rekisterioperandien etumerkki: %-merkin käyttö AT&T-syntaksissa (movl $4, %eax)
  • operaation muuttujan koko: b, w ja l -liitteiden käyttö operaatiokoodin perässä (esim. movl)
  • välittömien hyppykäskyjen muoto: $section, $offset

Lähteet muokkaa

  1. a b Ritchie, Dennis M.: The Development of the C Language bell-labs.com. Viitattu 24.7.2017.
  2. Dennis M. Ritchie: UNIX Assembler Reference Manual (PDF) tom-yam.or.jp. Viitattu 9.10.2019. (englanniksi) 
  3. S. C. Johnson & D. M. Ritchie: Portability of C Programs and the UNIX System bell-labs.com. 1978. Viitattu 6.9.2019. (englanniksi) 
  4. Berkeley VAX/UNIX Assembler Reference Manual (PDF) maibriz.de. Viitattu 9.10.2019. (englanniksi)
  5. Robert Dewar: AT&T x86 Asm Syntax cs.nyu.edu. Arkistoitu . Viitattu 9.10.2019. (englanniksi)
  6. Red Hat Enterprise Linux 3: Using as, the Gnu Assembler web.mit.edu. Viitattu 9.10.2019. (englanniksi)
  7. a b c Ram Narayan: Linux assemblers: A comparison of GAS and NASM 17.10.2007. IBM. Viitattu 9.10.2019. (englanniksi)

Aiheesta muualla muokkaa