Assembly:Summering
Fra CodeWiki
Som nevnt varierer koden avhengig av hva du programmerer for, vi viser her to eksempler:
Visual C++ 2008
Vi har følgende C++ kode:
int t1 = 2; int t2 = 3; int t3 = 8; int sum = t1 + t2 + t3; return sum;
Tilsvarende Assemblykode blir dermed:
mov dword ptr [ebp-8],2 mov dword ptr [ebp-14h],3 mov dword ptr [ebp-20h],8 mov eax,dword ptr [ebp-8] add eax,dword ptr [ebp-14h] add eax,dword ptr [ebp-20h] mov dword ptr [ebp-2Ch],eax
Registerne EBP og EAX kan du lese mer om Her
PIC18F4520
Vi har følgende C kode:
void main(){ int8 tall1, sum; tall1=3; sum = tall1 + 4; }
Denne kode skal vi "konvertere" til assembly. Koden ovenfor definerer to variabler som tall, og setter et tall som 3, og setter det andre tallet som det første tallet + 4. I Assembly får vi følgende kode (kommentarene i koden forklarer hva som skjer)
processor PIC18F452 ;definerer hvilken mikroprosessor vi bruker radix DEC ;Sier at det desimale tallsystemet skal benyttes ved mindre annet er oppgitt tall1 EQU 0x00 ;Definerer tall1 som et tall, som skal lagres i "minneskuff" 0 sum EQU 0x01 ;Samme som ovenfor, bare at nå lagrer vi variabelen sum i lager plass 1 org 0x0 GOTO main main MOVLW3 MOVWF tall1,0 MOVLW 4 ADDWF tall1,W,0 MOVWF sum,0 m001 BRA m001 END
