組合語言與系統程式(英文授課)
Assembly Language and System Programming
| 節 | 週二 | 週五 |
|---|---|---|
2 09:00–09:50 | 組合語言與系統程式(英文授課) EC016 | |
5 13:20–14:10 | 組合語言與系統程式(英文授課) EC016 2 節連堂 | |
6 14:20–15:10 |
* 根據陽明交大上課時間表所列
(1) Course Arrangement: phase I: assembly programming for single-chip μp (8051); phase II: assembly programming for general purpose μp (IA32/64); phase III: assembly programming for RISC μp (ARM); (2) Training Goals: (a) capability of writing assembly codes for 3 different types of processors; (b) grabbing phenomenon behind code execution in the context of the 3 processors; (c) mechanisms undergoing in the architectures of the 3 processors when the code is running (d) the design of assembler, linker and loader
experiences with C/C++ or other high level programming languages preferred, yet not essential
none
(1) Grading policy: (a) around 6 or more written tests will be given at due time as the course proceed, each would have the same weight at the evaluation of final grading; most likely the top N out of all tests will be taken into account in the final evaluation; (b) around 10 coding assignments will be given and It's the students' responsibility to ensure that the codes they write for the coding assignments actually works on machines, and thereby enhance their own coding experience and capacity; this part of work will not be graded, (c) the gradeing would consist of 3 components (b.1) projects (30-40% tentatively and individual-dependent) (b.2) written tests (80% tentatively and individual-dependent) (b.3) credits earned thru interactions in class sessions (2) Class attending: (a) constant presence in the class should be essential, though not enforced; (b) statement (a) does not apply to those who'd failed this course before, the ones thus must attend all three sessions every week for the entire semester, and failure in compliance with the request will immediately fail one for passing the evaluation, effective on site. Also, special attention will be paid to him/her by extra exercise assignment and performance inspection in class sessions; (c) interactions in the class are highly encouraged, credits would come with insightful questioning and answering to questions posted during the sessions. (d) Discussions among class members are encouraged too. To enforce such activities as course undergoing, every 3 members in the class are requested to form a team. Class presentations by students, if undertaken, will be held on team basis.
| 週次 | 主題 |
|---|---|
| 第 1 週 | General Overview - high-level programming and assembly programming; - what an assembly code may look like; - assembly programming and μp-architecture - single-chip, general-purpose, and ARM processors * system organizations * contexts of code executions * fields of applications |
| 第 2 週 | 51μp assembly programming - 51 instruction set and architecture; - coding samples - setting up context for code execution and debug (Keil-uVision51) |
| 第 3 週 | 51μp assembly programming (continued.) - 51 instruction set and architecture; - coding samples - code execution and underlying architectural mechanisms |
| 第 4 週 | 51μp assembly programming (continued.) - 51 instruction set and architecture; - coding samples - code execution and underlying architectural mechanism - push/pop and STACK operations phenomenon behind 51 code execution - instruction cycle - 51 code book - sequential execution, branching execution, call-return |
| 第 5 週 | 51 interrupt mechanism - associated issues and resolutions by 51μp controls of 51 IO operations and built-in I/O modules - I/O ports: structure and operations - counter/timer - SIO - setting up multi-51 processor system 51 assembler design - token extraction at source parsing - label table establishment - symbol table establishment - associated issues |
| 第 6 週 | operations with external code/data memories and I/O devices - address bus system - data bus system - code memory access - data memory access - IO access |
| 第 7 週 | IA32 overview - context of multitasking operations -operating modes - code/data/stack segment protection - interrupt mechanisms - context switching instructions set overview - categories by functions - syntax format - associated code set - instruction cycle |
| 第 8 週 | setting up context for code execution/simulation under Visual Studio (or Keil-μVision) Coding practice - data representation and declaration - instructions for arithmetic/logic, data transfer, looping control |
| 第 9 週 | Coding practice - data access by indexing - data blocks merging and splitting - partial retrieval/modification in data blocks - examining contents of list-file * reading data address of data items * reading code address of every instruction * code distances between instructions * code size/data-block size estimation |
| 第 10 週 | Coding practice - multiplication: MUL or shift-add - division: DIV or shift-subtract |
| 第 11 週 | Coding practice - matrix operations: add, multiplication, triangulation |
| 第 12 週 | Coding practice - calling C and called by C - C-statements and assembly equivalents |
| 第 13 週 | Coding practice - instructions with FPU (for floating-point operations) |
| 第 14 週 | ARM architectures - Mprofile instruction set - thumb - ISA32/64 |
| 第 15 週 | Coding Practice - Keil-MDK development environment set up - some code samples |
| 第 16 週 | Coding Practice - some code samples |
| 第 17 週 | Coding Practice - some code samples |
Readings: (a) textbook- “Assembly Language for Intel-based Computers”, 5th or latest Ed., Pearson, by K.P. Irvine (must) (b) designated readings- * 8051-related materials . . . to be released at due times via E3 * IA32/64-related materials . . . to be released at due times via E3 * ARM-related materials . . . to be released at due times via E3
- 地點
- office: EC416 class sessions: on site
- 時間
- 1430-1600 , Tue./Fri.. excluded
- 聯絡方式
- reach me by * office drop by during office hours * appointment (ext. # 54711 only; no e-mail)