article

Assembler(sprog/kode) er et 2. niveau programmeringssprog.

I praksis er det bare en symbolsk måde at skrive maskinkode på, eventuelt kombineret med et simpelt makrosystem. Oversættelsen fra assemblersprog til maskinkode varetages af en assembler. Da sproget afhænger af cpu'en, taler man eksempelvist om x86-assembler, ppc-assembler, etc. Assemblersprogets muligheder er også afhængigt af, hvilket styresystem, der bruges.

Den primære fordel ved assembler er at man kan lave hardwarenære optimeringer, der ikke er mulige i andre sprog. Ulempen er at det er besværligt at skrive.

Typisk skrives selve programmet i et højniveau sprog, og hvis det derefter er nødvendigt kan kritiske dele omskrives i assembler. Det er også nødvendigt at benytte assembler til visse dele af kernen i et styresystem.

To slags instruktioner


Assemblersproget omfatter to typer instruktioner. Der er de instruktioner, der direkte oversættes til maskinkode og der er pseudoinstruktioner, som fortæller assembleren, hvordan koden overordnet skal laves. Man bruger blandt andet pseudoinstruktioner til at definere, hvilke funktioner og variabler, der skal udstilles for andre moduler.

Eksempel


Et Hello world-program skrevet i GNU-assembler til Intels CPUer kunne se sådan ud:

  1. Simpelt Hello world! program

.data msg: .string "Hello world!\n" # Meddelelse, der skal vises len = . - msg # Længden på beskeden

.text .global _start # ld bruger denne label som start _start: # Vis besked xorl %eax,%eax # Ryd eax movb $4,%al xorl %ebx,%ebx incb %bl # bx = 1 movl $msg,%ecx xorl %edx,%edx movb $len,%dl int $0x80 # Alt i Linux sker via INT 80H

# Afslut med returkode 0 xorl %eax,%eax incb %al xorl %ebx,%ebx int $0x80

Programmeringssprog

Асемблер | Assembler | Assemblersprache | Assembly language | Asembla lingvo | Lenguaje ensamblador | Assemblerkeel | Assembly (ohjelmointikieli) | Assembleur | שפת סף | Assembler | Assembler | Assembly | アセンブリ言語 | 어셈블리어 | Asembleris | Assembler | Assembler | Asembler | Assembly | Ассемблер | Zbirnik (programski jezik) | Assembler | ภาษาแอสเซมบลี | 汇编语言

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Assemblersprog".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld