|
p:abstract
|
-
-{T|zh-hans:汇编语言;zh-hant:組合語言}-
-{A|zh-hans:汇编语言;zh-hant:組合語言}-(),-{zh-hant:又叫匯編語言;zh-hans:台湾称组合语言}-,是一种与硬件紧密相关的-{A|zh-hans:程序;zh-hant:程式}-设计zh-hans:低级;zh-hant:低階;}-语言。汇编语言是机器语言便于记忆和理解的符号形式(又稱為助憶字)。
汇编语言的语句与機器語言 (机器语言操作码) 存在对应关系,但这并不意味着汇编语言语句与机器操作对应。在 CISC (复杂指令集) 结构 CPU 上,汇编语言(或一个机器语言操作码)可能被组译器解译成多个“微指令”。
汇编语言不像其他大多數的程序設計語言, 一樣具有相近汇编语言曾经被广泛用作程序设计的基础;但是在今天的实际应用中,它通常被应用在底层硬件操作和高要求的程序优化。驱动程序、嵌入式操作系统和-{A|zh-hans:實時;zh-hant:即時}--{A|zh-hans:运行;zh-hant:執行}-程序都需要汇编语言。"
(zh)
-
Assembler (ASM) er en notasjon for et programmeringsspråk som er leselig for mennesker, brukt av en spesifikk maskinarkitektur. Maskinspråk, som i bunn og grunn bare er et mønster av bit (0 eller 1), blir gjort leselig ved å erstatte rådata med symboler kalt mnemonics. Assemblerspråk er 2. generasjons programmeringsverktøy, direkteinntasting av maskinkoder er 1. generasjons verktøy.
Så, mens en maskin vil kjenne igjen hva maskininstruksen IA-32
10110000 01100001
gjør, er det lettere for programmereren å huske assemblerspråkets representasjon
mov al, 0x61
(som betyr å flytte heksadesimal-verdien 61 (97 på desimaltall) inn i prosessorregisteret 'al'.)
Til forskjell fra høynivåspråk, er det tilnærmet et 1:1 forhold mellom enkel assemblerkode og maskinkode. For å konvertere fra assemblerspråk til maskinspråk (maskinkode) bruker man et program vi kaller en assembler, og det motsatte kan man gjøre med en disassembler.
Enhver maskinarkitektur har sitt eget maskinspråk, og har derfor også sitt eget assemblerspråk (eksempelet ovenfor er fra i386-prosessoren). Disse språkene skiller seg utfra antall og hva slags type operasjoner de støtter. De kan også ha ulike størrelser og antall registre, og ulike måter å lagre data på. Mens de fleste allsidige datamaskiner er i stand til å gjøre stort sett det samme, er ofte måten de gjør det på forskjellig."
(no)
-
Assembly on ohjelmointikielten alaluokka ja tarkoittaa symbolisia konekieliä. Tietokoneiden ymmärtämät konekielet koostuvat yleensä binäärimuotoisista käskyistä, jotka voidaan esittää esimerkiksi 1- ja 0-merkkien sarjoina. Symbolinen konekieli on konekielen havainnollisempi ja ihmisläheisempi esitysmuoto, joka määrittelee konekielen käskyille kirjoitetun kielen kaltaisen ulkoasun. Assembly-kielessä on siten lähes sama rakenne ja komennot kuin varsinaisessa konekielessä, mutta tekstimuotoisuus helpottaa ohjelman kirjoittamista ja ymmärtämistä. Konekieli ja siis myös assembly ovat sidonnaisia tiettyyn suoritinperheeseen.
Assembly-kielinen ohjelma muutetaan konekielelle assembleriksi nimetyllä kääntäjällä. Samaa laiteympäristöä varten voi olla useita eri syntakseja noudattavia assembly-kieliä ja niille omat kääntäjänsä. Assembly-kieliä ovat muun muassa Intel x86 Assembly ja AT&T Assembly, jotka ovat molemmat x86-konekielen symbolisia esitysmuotoja. Sen sijaan esimerkiksi ARM-konekielen kirjoittamiseen käytetään ARM-assemblyä.
Assembly-kieli antaa ohjelmoijalle täyden määräysvallan suorittimelle syötettävän komentosarjan suhteen, ja siksi sitä käyttämällä voidaan hyödyntää tietokoneen resurssit tehokkaasti. Assemblyä käytettiin kotimikrojen alkuaikoina melko yleisesti. Esimerkiksi MS-DOS-käyttöjärjestelmä, taulukkolaskentaohjelma Lotus 1-2-3 ja lähes kaikki Commodore 64:n sekä Amigan kaupalliset pelit ohjelmoitiin assemblyllä. Assemblyä ei juurikaan käytetä nykyaikaisten PC:n kaltaisten koneiden ohjelmoinnissa, paitsi erityisen laitteistoläheistä ohjelmointia vaativissa tehtävissä, kuten laiteohjaimissa, joskus myös suurta nopeutta vaativien tehtävien optimoinnissa, kuten salauksessa ja videokoodauksessa. Mobiililaitteiden ja muiden pienten sulautettujen järjestelmien ohjelmoinnissa on assemblyllä kuitenkin jonkin verran vahvempi asema. Kokonaisia ohjelmia ei tosin näillekään järjestelmille ole kovin mielekästä ohjelmoida pelkällä assemblyllä.
Korkean tason kielten kääntäjät ovat kehittyneet huomattavasti aikojen kuluessa ja se on vähentänyt tarvetta kirjoittaa konekieltä käsin. Nykyään konekieltä käytetään nostamaan pienten ja usein suoritettavien ohjelman osien nopeutta. Esimerkiksi vektorilaskutoimitukset saatettaisiin ohjelmoida konekielellä laskettavaksi vektorilaskuyksikössä, koska kääntäjä ei syystä tai toisesta tee sitä itse. Tällainen optimointi on yleistä esimerkiksi videopakkauksen purkamisessa. Toisaalta uudet suorittimet ovat sisäiseltä toiminnaltaan niin monimutkaisia, että kääntäjän tuottaman koodin kirjoittaminen käsin nopeammaksi on monesti käytännössä vaikeata tai se ei ole vaivan arvoista. Toisaalta kasvanut suoritintehto on aiheuttanut sen, että suurin osa suorittimista on toimettomana enimän aikaa pullonkaulojen, kuten I/O-operaatioiden ja sivutuksen aiheuttaman viiveen vuoksi."
(fi)
-
Eine Assemblersprache ist eine spezielle Programmiersprache, welche die Maschinensprache einer spezifischen Prozessorarchitektur in einer für den Menschen lesbaren Form repräsentiert. Jede Computerarchitektur hat folglich ihre eigene Assemblersprache.
Ein Programm in Assemblersprache wird auch als Assemblercode bezeichnet. Es wird durch einen speziellen Compiler, ebenfalls Assembler genannt, in direkt ausführbare Maschinensprache (auch Maschinencode) umgewandelt. Die umgekehrte Umsetzung von Maschinencode in menschenlesbaren Assemblercode wird Disassemblierung genannt. Allerdings lassen sich dabei beiläufige Informationen wie Bezeichner und Kommentare nicht wiederherstellen, da diese bereits bei der Compilierung unwiederbringlich verloren gingen, was ein Verstehen des Programms erschwert.
Programme in Assemblersprache zeichnen sich dadurch aus, dass man die komplette Bandbreite des Computers ausnutzen und Hardwarechips direkt programmieren kann. Weil Assemblerprogramme faktisch auf Maschinencode-Ebene arbeiten, sind sie oftmals erheblich kleiner und schneller als Programme, die einen ähnlichen Grad an Komplexität aufweisen, aber eine Hochsprache als Basis haben. Der Compiler einer höheren Programmiersprache erzeugt meistens mehr Code, weil er stark generalisiert geschrieben werden muss. Der Abstand hat sich allerdings durch moderne optimierende Compiler stark verringert. Bei einigen speziellen Prozessoren wie Intel Itanium und verschiedenen DSPs kann der Compiler u. U. sogar besseren Code erzeugen als ein durchschnittlicher Assemblerprogrammierer, da diese Architekturen ihre Leistung erst bei hochkomplexen Optimierungen entfalten, die vom Menschen in diesem Umfang nur schwer zu überblicken sind.
Die Nachteile von Assemblerprogrammen sind u. a. höhere Fehleranfälligkeit (durch erhöhte Komplexität), damit verbunden extrem großer Programmieraufwand bei umfangreichen Projekten und die (praktische) Unmöglichkeit des Portierens auf eine andere Hardware. Faktisch wird daher heute Assemblerprogrammierung nur noch eingesetzt, wenn Programme bzw. Teile davon sehr zeitkritisch sind (beispielsweise bei der Programmierung von Gerätetreibern für Grafikkarten) oder nur einen sehr geringen Speicherplatzbedarf aufweisen dürfen (z. B. in eingebetteten Systemen)."
(de)
-
El lenguaje Assembler es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador.
Fue usado ampliamente en el pasado para el desarrollo de software, pero actualmente sólo se utiliza en contadas ocasiones, especialmente cuando se requiere la manipulación directa del hardware o se pretenden rendimientos inusuales de los equipos."
(es)
-
L'assembly, o linguaggio assemblatore (spesso chiamato impropriamente assembler) è, tra i linguaggi di programmazione, quello più vicino al linguaggio macchina vero e proprio."
(it)
-
See the terminology section below for information regarding inconsistent use of the terms assembly and assembler.
An assembly language is a low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture. This representation is usually defined by the hardware manufacturer, and is based on abbreviations (called mnemonics) that help the programmer remember individual instructions, registers, etc. An assembly language is thus specific to a certain physical or virtual computer architecture (as opposed to most high-level languages, which are portable).
Assembly languages were first developed in the 1950s, when they were referred to as second generation programming languages. They eliminated much of the error-prone and time-consuming first-generation programming needed with the earliest computers, freeing the programmer from tedium such as remembering numeric codes and calculating addresses. They were once widely used for all sorts of programming. However, by the 1980s (1990s on small computers), their use had largely been supplanted by high-level languages, in the search for improved programming productivity. Today, assembly language is used primarily for direct hardware manipulation, access to specialized processor instructions, or to address critical performance issues. Typical uses are device drivers, low-level embedded systems, and real-time systems.
A utility program called an assembler is used to translate assembly language statements into the target computer's machine code. The assembler performs a more or less isomorphic translation (a one-to-one mapping) from mnemonic statements into machine instructions and data. (This is in contrast with high-level languages, in which a single statement generally results in many machine instructions. A compiler, analogous to an assembler, is used to translate high-level language statements into machine code; or an interpreter executes statements directly.)
Many sophisticated assemblers offer additional mechanisms to facilitate program development, control the assembly process, and aid debugging. In particular, most modern assemblers include a macro facility (described below), and are called macro assemblers.
(en)
-
See the terminology section below for information regarding inconsistent use of the terms assembly and assembler.
An assembly language is a low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture. This representation is usually defined by the hardware manufacturer, and is based on abbreviations (called mnemonics) that help the programmer remember individual instructions, registers, etc. An assembly language is thus specific to a certain physical or virtual computer architecture (as opposed to most high-level languages, which are portable).
Assembly languages were first developed in the 1950s, when they were referred to as second generation programming languages. They eliminated much of the error-prone and time-consuming first-generation programming needed with the earliest computers, freeing the programmer from tedium such as remembering numeric codes and calculating addresses. They were once widely used for all sorts of programming. However, by the 1980s (1990s on small computers), their use had largely been supplanted by high-level languages, in the search for improved programming productivity. Today, assembly language is used primarily for direct hardware manipulation, access to specialized processor instructions, or to address critical performance issues. Typical uses are device drivers, low-level embedded systems, and real-time systems.
A utility program called an assembler is used to translate assembly language statements into the target computer's machine code. The assembler performs a more or less isomorphic translation (a one-to-one mapping) from mnemonic statements into machine instructions and data. (This is in contrast with high-level languages, in which a single statement generally results in many machine instructions. A compiler, analogous to an assembler, is used to translate high-level language statements into machine code; or an interpreter executes statements directly.)
Many sophisticated assemblers offer additional mechanisms to facilitate program development, control the assembly process, and aid debugging. In particular, most modern assemblers include a macro facility (described below), and are called macro assemblers."
(en)
-
Uma linguagem de montagem ou assembly é uma notação legível por humanos para o código de máquina que uma arquitectura de computador específica usa. A linguagem de máquina, que é um mero padrão de bits, torna-se legível pela substituição dos valores em bruto por símbolos chamados mnemônicos.
Por exemplo, enquanto um computador sabe o que a instrução-máquina IA-21 (10110000 01100001) faz, para os programadores é mais fácil recordar a representação equivalente em intruções mnemônicas MOV AL, 61h. Tal instrução ordena que o valor hexadecimal 61 (97, em decimal) seja movido para o registrador 'AL'."
(pt)
-
Un langage d'assemblage ou langage assembleur ou simplement assembleur par abus de langage, abrégé ASM est, en programmation informatique, un langage de bas niveau proche du langage machine et dont le jeu d'instructions peut être directement interprété par le microprocesseur de l'ordinateur tout en restant lisible par un humain.
L'assembleur a été créé pour faciliter le travail des programmeurs. Il consiste à représenter les combinaisons de bits employées en langage binaire par des symboles appelés mnémoniques (du grec mnêmonikos, relatif à la mémoire), c'est à dire faciles à retenir. Le programme assembleur converti ces mnémoniques en langage machine en vue de créer par exemple un fichier exécutable.
Sur les premiers ordinateurs, la tâche d'assemblage était accomplie manuellement par le programmeur."
(fr)
-
Язык ассемблера — тип языка программирования низкого уровня, представляющий собой формат записи машинных команд, удобный для восприятия человеком. Часто для краткости его называют «Ассемблер»."
(ru)
-
アセンブリ言語(アセンブリげんご、assembly language)とは、人間にわかりやすい形で機械語を記述するプログラミング言語である。代表的な低級言語である。CPUが直接実行できる言語は機械語のみであるが、機械語は数字の羅列なので人間には理解しにくい。そこで、機械語を直接記述するのではなく、機械語の意味を表す略語で機械語を記述することで、人間にわかりやすくしたものがアセンブリ言語である。アセンブリ言語の文法はCPUのアーキテクチャに依存するため、高級言語のような移植性はない。
アセンブリ言語を機械語に変換する事をアセンブル (assemble) すると言い、それを行うプログラムの事をアセンブラ (assembler) と言う。アセンブリ言語のことをアセンブラと呼ぶ者もいるが、これは厳密には誤用である。
アセンブリ言語の命令は、アセンブラに対する命令(疑似命令)やマクロ命令を除き、機械語と1対1で対応する。そのため、高級言語のコンパイラの最適化能力では実現できない最適化を手作業で行いたい場合のほか、CPUの動作をプログラマが完全に制御する必要がある場面、例えばOSカーネルやデバイスドライバ、組み込みシステムの開発といった場面で頻繁に用いられる。"
(ja)
|
|
rdfs:comment
|
-
-{T|zh-hans:汇编语言;zh-hant:組合語言}- -{A|zh-hans:汇编语言;zh-hant:組合語言}-(),-{zh-hant:又叫匯編語言;zh-hans:台湾称组合语言}-,是一种与硬件紧密相关的-{A|zh-hans:程序;zh-hant:程式}-设计zh-hans:低级;zh-hant:低階;}-语言。汇编语言是机器语言便于记忆和理解的符号形式(又稱為助憶字)。"
(zh)
-
Assembler (ASM) er en notasjon for et programmeringsspråk som er leselig for mennesker, brukt av en spesifikk maskinarkitektur. Maskinspråk, som i bunn og grunn bare er et mønster av bit (0 eller 1), blir gjort leselig ved å erstatte rådata med symboler kalt mnemonics. Assemblerspråk er 2. generasjons programmeringsverktøy, direkteinntasting av maskinkoder er 1. generasjons verktøy."
(no)
-
Assembly on ohjelmointikielten alaluokka ja tarkoittaa symbolisia konekieliä. Tietokoneiden ymmärtämät konekielet koostuvat yleensä binäärimuotoisista käskyistä, jotka voidaan esittää esimerkiksi 1- ja 0-merkkien sarjoina. Symbolinen konekieli on konekielen havainnollisempi ja ihmisläheisempi esitysmuoto, joka määrittelee konekielen käskyille kirjoitetun kielen kaltaisen ulkoasun."
(fi)
-
Eine Assemblersprache ist eine spezielle Programmiersprache, welche die Maschinensprache einer spezifischen Prozessorarchitektur in einer für den Menschen lesbaren Form repräsentiert. Jede Computerarchitektur hat folglich ihre eigene Assemblersprache."
(de)
-
El lenguaje Assembler es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador."
(es)
-
L'assembly, o linguaggio assemblatore (spesso chiamato impropriamente assembler) è, tra i linguaggi di programmazione, quello più vicino al linguaggio macchina vero e proprio."
(it)
-
See the terminology section below for information regarding inconsistent use of the terms assembly and assembler.
(en)
-
Uma linguagem de montagem ou assembly é uma notação legível por humanos para o código de máquina que uma arquitectura de computador específica usa. A linguagem de máquina, que é um mero padrão de bits, torna-se legível pela substituição dos valores em bruto por símbolos chamados mnemônicos."
(pt)
-
Un langage d'assemblage ou langage assembleur ou simplement assembleur par abus de langage, abrégé ASM est, en programmation informatique, un langage de bas niveau proche du langage machine et dont le jeu d'instructions peut être directement interprété par le microprocesseur de l'ordinateur tout en restant lisible par un humain."
(fr)
-
Язык ассемблера — тип языка программирования низкого уровня, представляющий собой формат записи машинных команд, удобный для восприятия человеком. Часто для краткости его называют «Ассемблер»."
(ru)
-
アセンブリ言語(アセンブリげんご、assembly language)とは、人間にわかりやすい形で機械語を記述するプログラミング言語である。代表的な低級言語である。CPUが直接実行できる言語は機械語のみであるが、機械語は数字の羅列なので人間には理解しにくい。そこで、機械語を直接記述するのではなく、機械語の意味を表す略語で機械語を記述することで、人間にわかりやすくしたものがアセンブリ言語である。アセンブリ言語の文法はCPUのアーキテクチャに依存するため、高級言語のような移植性はない。"
(ja)
|