校際選修

115-1 選課時程

進行中

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

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

Assembly Language and System Programming

學期
108-2
學分
3 學分
當期課號
1258
永久課號
DCP1110
開課單位
資訊工程學系
授課教師
林正中
校區
光復
類別
選修
上課時間表
週二
週五
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 Hours
地點
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)