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]