Datadeklarationer och tilldelningar

1.1.1. Följande deklarationer är gjorda på global nivå, visa hur deklarationerna uttrycks i assemblerspråk.
char c;
short s;
int i;

	.GLOBL	c,s,i
c:	.SPACE	1
	.ALIGN	1
s:	.SPACE	2
	.ALIGN	2
i:	.SPACE	4

1.1.2. Följande deklarationer är gjorda på global nivå, visa hur deklarationerna uttrycks i assemblerspråk.
static unsigned char uc;
static unsigned short us;
static unsigned int ui;

uc:	.SPACE	1
	.ALIGN	1
us:	.SPACE	2
	.ALIGN	2
ui:	.SPACE	4


1.1.3 Följande deklarationer är gjorda på global nivå, visa hur deklarationerna uttrycks i assemblerspråk.
unsigned char c = 'A';
unsigned short s = 0x1234;
unsigned int i = 0x89ABCDEF;

Lösning:
c:	.BYTE	'A'
	.ALIGN	1
s:	.HWORD	0x1234
	.ALIGN	2
i:	.WORD	0x89ABCDEF
	.GLOBL	c,s,i

1.1.4. Utgå från följande deklarationer på global nivå:
char c1,c2,c3;

visa hur följande tilldelningssatser kan kodas i ARM-v6 assemblerspråk:
c1 = -18;
c2 = c3;

a)
    LDR 	R3,=c1
    LDR	    R2,=-18
    STRB	R2,[R3]
b)
    LDR	    R3,=c3
    LDRB	R3,[R3]
    LDR	    R2,=c2
    STRB	R3,[R2]

1.1.5. Utgå från följande deklarationer på global nivå:
short s1,s2,s3;

visa hur följande tilldelningssatser kan kodas i ARM-v6 assemblerspråk:
s1 = 0x3344;
s2 = s3;

a)
    LDR	    R3,=s1
    LDR	    R2,=0x3344
    STRH	R2,[R3]
b)
    LDR	    R3,=s3
    LDRH	R3,[R3]
    LDR	    R2,=s2
    STRH	R3,[R2]

1.1.6. Utgå från följande deklarationer på global nivå:
int i1,i2,i3;

visa hur följande tilldelningssatser kan kodas i ARM-v6 assemblerspråk:
i1 = 0x11223344;
i2 = i3;

a)
    LDR	    R3,=i1
    LDR	    R2,= 0x11223344
    STR	    R2,[R3]
b)
    LDR	    R3,=i3
    LDR	    R3,[R3]
    LDR	    R2,=i2
    STR	    R3,[R2]
eller:
    LDR	    R3,i3
    LDR	    R2,=i2
    STR	    R3,[R2]

1.1.7. Utgå från följande deklarationer på global nivå:
unsigned char uc1,uc2,uc3;
unsigned short us1,us2,us3;
unsigned int ui1,ui2,ui3;

visa hur följande tilldelningssatser kan kodas i ARM-v6 assemblerspråk:
a) uc1 = 36;
b) uc2 = uc3;
c) us1 = 1500;
d) us3 = us2;
e) ui1 = 52000;
f) ui3 = ui2;

a)
    LDR	    R3,=uc1
    LDR	    R2,=36
    STRB	R2,[R3]
b)
    LDR	    R3,=uc3
    LDRB	R3,[R3]
    LDR	    R2,=uc2
    STRB	R3,[R2]
c)
    LDR	    R3,=us1
    LDR	    R2,=1500
    STRH	R2,[R3]
d)
    LDR	    R3,=us2
    LDRH	R3,[R3]
    LDR	    R2,=us3
    STRH	R3,[R2]
e)
    LDR	    R3,=ui1
    LDR	    R2,=52000
    STR	    R2,[R3]
f)
    LDR	    R3,=ui2
    LDR	    R3,[R3]
    LDR	    R2,=ui3
    STR	    R3,[R2]
eller:
    LDR	    R3,ui2
    LDR	    R2,=ui3
    STR	    R3,[R2]