Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 78 trang
THÔNG TIN TÀI LIỆU
Cấu trúc
Slide 1
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Slide 10
Slide 11
Slide 12
Slide 13
Slide 14
Slide 15
Slide 16
Slide 17
Slide 18
Slide 19
Slide 20
Slide 21
Slide 22
Slide 23
Slide 24
Slide 25
Slide 26
Slide 27
Slide 28
Slide 29
Slide 30
Slide 31
Slide 32
Slide 33
Slide 34
Slide 35
Slide 36
Slide 37
Slide 38
Slide 39
Slide 40
Slide 41
Slide 42
Slide 43
Slide 44
Slide 45
Slide 46
Slide 47
Slide 48
Slide 49
Slide 50
Slide 51
Slide 52
Slide 53
Slide 54
Slide 55
Slide 56
Slide 57
Slide 58
Slide 59
Slide 60
Slide 61
Slide 62
Slide 63
Slide 64
Slide 65
Slide 66
Slide 67
Slide 68
Slide 69
Slide 70
Slide 71
Slide 72
Slide 73
Slide 74
Slide 75
Slide 76
Slide 77
Slide 78
Nội dung
ARM Assembly Programming Computer Organization and Assembly Languages Yung-Yu Chuang 2007/11/19 with slides by Peng-Sheng Chen Introduction • The ARM processor is very easy to program at the assembly level. (It is a RISC) • We will learn ARM assembly programming at the user level and run it on a GBA emulator. ARM programmer model • The state of an ARM system is determined by the content of visible registers and memory. • A user-mode program can see 15 32-bit general- purpose registers (R0-R14), program counter (PC) and CPSR. • Instruction set defines the operations that can change the state. Memory system • Memory is a linear array of bytes addressed from 0 to 2 32 -1 • Word, half-word, byte • Little-endian 00 10 20 30 FF FF FF 00 00 00 0x00000000 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0xFFFFFFFF 0xFFFFFFFE 0xFFFFFFFD Byte ordering • Big Endian – Least significant byte has highest address Word address 0x00000000 Value: 00102030 • Little Endian – Least significant byte has lowest address Word address 0x00000000 Value: 30201000 00 10 20 30 FF FF FF 00 00 00 0x00000000 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0xFFFFFFFF 0xFFFFFFFE 0xFFFFFFFD ARM programmer model 00 10 20 30 FF FF FF 00 00 00 0x00000000 0x00000001 0x00000002 0x00000003 0x00000004 0x00000005 0x00000006 0xFFFFFFFF 0xFFFFFFFE 0xFFFFFFFD R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 PC Instruction set ARM instructions are all 32-bit long (except for Thumb mode). There are 2 32 possible machine instructions. Fortunately, they are structured. Features of ARM instruction set • Load-store architecture • 3-address instructions • Conditional execution of every instruction • Possible to load/store multiple register at once • Possible to combine shift and ALU operations in a single instruction Instruction set MOV<cc><S> Rd, <operands> MOVCS R0, R1 @ if carry is set @ then R0:=R1 MOVS R0, #0 @ R0:=0 @ Z=1, N=0 @ C, V unaffected Instruction set • Data processing (Arithmetic and Logical) • Data movement • Flow control . program at the assembly level. (It is a RISC) • We will learn ARM assembly programming at the user level and run it on a GBA emulator. ARM programmer model • The state of an ARM system is determined. ARM Assembly Programming Computer Organization and Assembly Languages Yung-Yu Chuang 2007/11/19 with slides by Peng-Sheng Chen Introduction • The ARM processor is very. PC Instruction set ARM instructions are all 32-bit long (except for Thumb mode). There are 2 32 possible machine instructions. Fortunately, they are structured. Features of ARM instruction