組合語言與系統程式(英文授課)
Assembly Language and System Programming
| 節 | 週一 | 週四 |
|---|---|---|
3 10:10–11:00 | 組合語言與系統程式(英文授課) EC015(光復) 2 節連堂 | |
4 11:10–12:00 | ||
7 15:30–16:20 | 組合語言與系統程式(英文授課) EC015(光復) |
* 根據陽明交大上課時間表所列
This course aims at programming skills at low levels with assembly language. The first part of this course is on assembly programming for Intel processors. Interestingly, this course is not to encourage you to write programs with assembly – it is not necessary to program in assembly if the same thing can be done with a high-level language. However, good command of assembly helps you to understand the rationale behind various techniques of performance optimization and, most importantly, to avoid writing poorly performing programs. The second part is on the design and implementation of system software, assemblers and linking loaders in particular. It helps to understand how assembly instructions are encoded as binary code, and how binary executables are linked and loaded into memory for execution.
It's good to know C/C++.
無備註
http://www.cs.nctu.edu.tw/~cswingo/teaching/AssemblyLanguage/index.htm
‧ Grading – Homework : 20% – Project : 15% - Programming Quizzes: 10% – Midterm (programming exam, on-site test): 20% – Final exam (Programming Exam + Written Exam); Assembly + System programming: 10%(program test)+ 25%(Written)
Assembly Language Fundamentals
operators, precedence among operators, labels, strings, data types, arrays
Data Transfers, Addressing, and Arithmetic
-Data Transfer Instructions -Addition and Subtraction -Data-Related Operators and Directives -Indirect Addressing -JMP and LOOP Instructions
Procedures
- Linking to an External Library - The Book's Link Library - Stack Operations - Defining and Using Procedures - Program Design Using Procedures
Conditional Processing
- Boolean and Comparison Instructions - Conditional Jumps - Conditional Loop Instructions - Conditional Structures - Application: Finite-State Machines - Decision Directives
Integer Arithmetic
- Shift and Rotate Instructions - Shift and Rotate Applications - Multiplication and Division Instructions - Extended Addition and Subtraction - ASCII and Unpacked Decimal Arithmetic - Packed Decimal Arithmetic
Advanced Procedures
- Stack Frames - Recursion - .MODEL Directive - INVOKE, ADDR, PROC, and PROTO - Creating Multimodule Programs
Strings and Arrays
- String Primitive Instructions - Selected String Procedures - Two-Dimensional Arrays - Searching and Sorting Integer Arrays
Structures and Macros
- Structures - Macros - Conditional-Assembly Directives - Defining Repeat Blocks
High-level language interface
-Inline Assembly Code -Linking to C/C++ in Protected Mode -Linking to C/C++ in Real-Address Mode
System software: Machine architecture
- SIC (A hypothetical machine architecture) - CISC - RISC
System software: Assemblers
– Instruction formats – Addressing modes – Program relocation – Literals, symbols – Expressions, blocks – Linking
System Software: Linking Loaders
– Bootstrap loaders – Relocation – Dynamic linking – Library search
System software: Macro processors
– Algorithms and data structures for macro processing – Parameter substitution
| 週次 | 主題 |
|---|---|
| 第 1 週 | 課程簡介, Assembly Language Fundamentals |
| 第 2 週 | Assembly Language Fundamentals |
| 第 3 週 | Data Transfers, Addressing, and Arithmetic |
| 第 4 週 | Procedures |
| 第 5 週 | Procedures |
| 第 6 週 | Conditional Processing |
| 第 7 週 | Conditional Processing |
| 第 8 週 | Integer Arithmetic |
| 第 9 週 | Midterm |
| 第 10 週 | Advanced Procedures |
| 第 11 週 | strings and Arrays |
| 第 12 週 | Structures and Macros |
| 第 13 週 | High-level Language Interface |
| 第 14 週 | Assemblers |
| 第 15 週 | Assemblers |
| 第 16 週 | Linking Loaders |
| 第 17 週 | Macro Processors |
| 第 18 週 | Final |
Kip R. Irvine, "Assembly Language for x86 Processors", Seventh Edition (Optional) Leland L. Beck, “System Software: An introduction to Systems Programming, 3rd edition,” Addison Wesley Longman, 1997. ISBN-10: 0201423006, 台北圖書代理
- 地點
- 教師未提供此項資料
- 時間
- 教師未提供此項資料
- 聯絡方式
- Email:cswingo@cs.nctu.edu.tw Room: 706 分機: 56626
