Sv: Binære tall
Opprinnelig lagt inn av Joika, her.
Bingo. Du har skjønt hva jeg egentlig mener i allefall.
ADD kan legge sammen variabler som ligger både over og under, bare det refereres til linje.. feks R1, R2 osv. (Det er eksempelet jeg har her i allefall).
Her er eksempelet:
S = 0;
for(i=1;i < 4;i++)
{
S = S + i;
}
0 MOVI R0 <- 3 (MOV Integer. maksverdien i for-løkken legges i R0)
1 MOVI R1 <- 1 (tallet som i økes med for hver runde i løkken)
2 MOVI R2 <- 0 (variabelen i lagres i R2)
3 MOVI R3 <- 0 (S = 0)
4 ADD R2 <- R2 + R3 (i++)
5 ADD R3 <- R3 + R2 (S = S + 1)
6 CMP R2 R0 (COMPARE, er i = 3 ? )
7 JNE 4 (Jump Not Equal 4, hopp til linje 4 hvis i != 3)
Blir da binært:
0010 0111
0010 1000
0010 1100
0100 1001
0100 1101
1100 1000
1111 0100
Det jeg ikke skjønner helt..om jeg skal ha feks 6 som variabel.
Hvordan skriver jeg det? Kan jeg egentlig det? Eller må jeg skrive
utgregningen i form av løkke for å komme til 6?
Bortsett fra at jeg ikke skjønner eksempelet heeelt, linje
5 ADD R3 <- R3 + R2 (S = S + 1) burde vel være
5 ADD R3 <- R3 + R1 (S = S + 1), burde det ikke? Kanskje jeg som tuller?
Uansett: har du en assembler som kan kjøre assemblykoden for deg, eller skal du bare kode "på papiret"?
Generelt så deklarerer man variabler på denne måten:
variabel DB 6 (6 desimalt, kan også skrive 6h, eller 0110)
man setter av plass til variabelen, er det et asciitegn, så tar det en byte, og da bruker man DB som er en byte. For tall, som er større enn en byte når man skriver dem binært kan man deklarere som DW(Word), DD(double word)
variabel DW 61h
Men det finnes sikkert noen bra tutorials på nettet altså.
__________________
It takes a great deal of effort to sustain a conservative, trustworthy persona.
|