校際選修

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

學期
110-1
學分
3 學分
當期課號
1149
永久課號
DCP1107
開課單位
資訊工程學系
授課教師
林正中
校區
光復
類別
選修
上課時間表
週二
週五
2
09:00–09:50
組合語言與系統程式
ED302
5
13:20–14:10
組合語言與系統程式
ED302
2 節連堂
6
14:20–15:10

* 根據陽明交大上課時間表所列

概述

(a) capability of writing assembly codes for single-chip and general-purpose processors (IA32/ARM). (b) grabbing phenomenon behind code execution in the context of the architectures of the 3 processors. (c) mechanisms undergoing in the architectures of the 3 processor. (d) the design of assembler, linker and loader

先修科目

none

教學方式

no TA available in this course * the instructor will personally scrutinize all written tests; * whenever encountering problems of any kinds during the semester, go directly to the instructor for the assistance.

評分方式

[1] Class attending: (a) constant presence in the class should be essential, though not enforced; (b) interactions in the class are highly encouraged, credits would be earned with insightful questioning and answering to questions posted during the sessions. (c) 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. [2] Course Loading: (a) at least 1 coding assignment; (working samples on specific task goals will be given as the ground of further modifications for higher goals); (b) 6 to 10 written tests in which students will be requested to write code lines for designated purposes. [3] Grading policy: (a) it’s students’ responsibility to ensure that the codes they write for the coding assignments are actually executable on machines, and thereby enhance their own coding experience and capacity, this part of work will not be graded, (b) the grades would entirely depend on (b.1) written tests (80% tentatively and individual-dependent) (b.2) credits earned in class sessions

週次計畫
週次主題
第 1 週* General Overview - high-level programming and assembly programming; - what does an assembly code look like; - assembly programming and μp-architecture;
第 2 週*51μp assembly programming - 51 instruction set and architecture; - coding samples - setting up context for code execution and debug (uVision51)
第 3 週51μp assembly programming (continued.) - 51 instruction set and architecture; - coding samples - code execution and underlying architectural mechanism
第 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 built-in I/O modules * 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
第 11 週* Coding practice - division: DIV or shift-subtract
第 12 週* Coding practice - matrix operations: add, multiplication, triangulation
第 13 週* Coding practice - calling called by C - C-statements and assembly equivalents
第 14 週* Coding practice - instructions with FPU (for floating-point operations)
第 15 週* ARM architecture * instruction set * some code samples
教科書

(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 * ARM7-related materials . . . to be released at due times via E3

Office Hours
地點
EC416 Office
時間
1500-1600 weekdays, except for Mon. and Fri.
聯絡方式
* drop-by and knock-knock; * call ext. #54711; * call ext. #54711 for appointment; (no e-mail please)