2 項進行中

115-1 選課時程

進行中

  • 初選第一階段 6/15 – 6/18
  • 初選第二階段 6/22 – 6/25
  • 校際選修 進行中 8/24 – 9/18
  • 初選第三階段 8/31 – 9/3
  • 開學後加退選 進行中 9/7 – 9/21
  • 逾期加退選 9/21 – 9/24
選課資源

加入行事曆

選擇訂閱 Google Calendar,或下載通用的 ICS 檔案。

使用 Google Calendar 時,Google 會收到這份課表的公開連結。

組合語言與系統程式(英文授課)

Assembly Language and System Programming

學期
106-2
學分
0 學分
當期課號
1174
永久課號
DCP1110
開課單位
資訊工程學系
授課教師
黃世強
校區
光復
類別
選修
上課時間表
週一
週四
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, 台北圖書代理

Office Hours
地點
教師未提供此項資料
時間
教師未提供此項資料
聯絡方式
Email:cswingo@cs.nctu.edu.tw Room: 706 分機: 56626