-
Notifications
You must be signed in to change notification settings - Fork 0
/
Tutorial Code.txt
55 lines (42 loc) · 1.63 KB
/
Tutorial Code.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
PRESERVE8
THUMB
Addr_Reg RN r7 ; I am only going to use Reg 7 for addresses
Data_Reg2 RN r6 ; I am only going to use Register 6 for my addresses
Data_Reg1 RN r5 ; I am only going to use Register 5 for data going to or coming from memory
INITAL_MSP EQU 0x20001000
;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
AREA RESET,DATA,READONLY
EXPORT __Vectors
__Vectors DCD INITAL_MSP
DCD Reset_Handler
ALIGN
;/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
AREA |.data|,DATA,READWRITE
VAR_1 DCD 0x00 ;These are each 2 bytes wide.
VAR_2 DCD 0x00
ALIGN
AREA |.text|, CODE, READONLY
EXPORT Reset_Handler
ENTRY ;Needed to signal the start of a program
Reset_Handler
;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
MAIN PROC
ldr Addr_Reg,=VAR_2
mov r8,#5
str r8,[Addr_Reg]
ldr Addr_Reg,=VAR_1
mov r8,#6
str r8,[Addr_Reg] ;Stores the value located in R0 in the location 0x40010C04
ldr Addr_Reg,=VAR_2
ldr Data_Reg1,[Addr_Reg]
ldr Addr_Reg,=VAR_1
ldr Data_Reg2,[Addr_Reg] ;Stores the value located in R0 in the location 0x40010C04
ADD r0,Data_Reg1,Data_Reg2
ldr Addr_Reg,=VAR_1
str r0, [Addr_Reg]
ldr r4, [Addr_Reg]
ASSERT 1 < 2
B MAIN
ENDP
ALIGN
END