90 likes | 217 Views
COMP 2003: Assembly Language and Digital Logic. Chapter 0: Some Background Notes by Neil Dickson. Purposes of the Course. Learn how modern computers work from a software perspective Learn about the basics of computer architecture. Behold, T he Computer. CPU. RAM. I/O.
E N D
COMP 2003:Assembly Language and Digital Logic Chapter 0: Some Background Notes by Neil Dickson
Purposes of the Course • Learn how modern computers work from a software perspective • Learn about the basics of computer architecture
Behold, The Computer CPU RAM I/O the focus of this course a huge can of worms
Memory (RAM) Data in memory is whatever you use it as. 00000000h FFFFFFFFh ... 0000002Bh
CPU Execution • Reads data from memory representing machine code instruction (fetch) • Interprets the machine code (decode) • Reads data from registers or memory to be operated on (load) • Performs the operation specified by the instruction (execute) • Writes results to registers or memory (store)
CPU State (32-bit x86) Things relevant for now Things not relevant until later on General Registers Special Registers Control Registers FPU Registers SSE Registers eax eflags cr0 st0 xmm0 Translation Lookaside Buffers (TLBs) ecx cr2 st1 xmm1 edx eip cr3 st2 xmm2 4 Cache Levels (primary, L1, L2, L3) ebx cr4 st3 xmm3 esp st4 xmm4 ebp gdtr st5 xmm5 MTRRs esi ldtr st6 xmm6 MSRs edi idtr st7 xmm7 Miscellaneous Other Stuff tr cw mxcsr sw tw
What is Assembly Language? • A programmer-readable representation of machine code
Why Use Assembly Language? • To learn how your software actually works under the hood • Performance • Operating Systems • Embedded Systems
Things you’ll need • Inventor IDE, an assembly editor created for this course (http://www.codecortex.com/ide/) • Assembly Language Video Tutorial, a fast, easy way to learn assembly for doing graphics (http://www.codecortex.com/ide/tutorial/)