Assembly Language and System Programming

[ Course slides ] [ Useful links ]


General information

Instructor name: 黃世強 (Sai-Keung Wong)

Office: Room 706

Email: wingo.wong@gmail.com or cswingo@cs.nctu.edu.tw

#ext. 56626

 

Teaching Assistants:

Name <Email>

Room

Office hour

孫采荷 <locha0519@gmail.com>

電資大樓 707

陳健元 <allen840707@gmail.com>

電資大樓 707

Yu Chun Hsu <i_always_smile123@yahoo.com.tw>

電資大樓 707

電資大樓 707

 

電資大樓 707

 

Course time schedule:

Monday 15:30 16:20

Thursday: 10:10-12:00

Venue: EC015


Programming Package [NET2013]


Course Score List (2018 Spring)

Midterm Score List


First Midterm

Date:

Room:

Bring student ID, notes and books.

Please come earlier.

No electronic devices.

All the materials taught so far


Programming Quizzes

Each quiz should be finished in two days.


Project

Instruction pdf (will be available soon)

Template package [NET]

 

Programming due date: 25th June, 2017; Time: 23:00

Report due date: 26th June, 2017. Submit a hardcopy report to my office EC706. Both are hard deadline.

 

Submission:

1. Source code. Upload it to E3 platform.

The asm file name must be: asm_pj_StudentID.asm

For example, if your ID is 123456789, then the file name

must be asm_pj_123456789.asm and the folder name

must be asm_pj_123456789

At the top of the .asm file, write down your name, ID and email address.

Make sure that the folder contains the Irvine folder so that we can build your program directly without needing to set file paths.

2. Report. Submit a hard copy report in class. You MUST follow the instruction to write the report.


Final Exam

Written Exam: Date will be announced later

Content: All the materials that taught in class and assignments, including SIC and SIC/XE.

 

Programming: Date will be announced later

Content: All the materials that taught in class and assignments.

Venue: will be announced later.

 


Lab Exercises:

Date: not available; Set one instruction; Program Package One

Date: not available; Set two instruction; Program Package Two

 

You should follow the instruction and finish all the exercises.


 

Course slides : Assembly Language

Software system slides

Chapter 12 and source code

SIC Code doc

 

[Note that some chapters will not be taught.]

Make sure that you have MASM installed on your computer.

Getting start example: source code. (included 16-bit and 32-bit examples)

 

Factorial computation (ppt)

 

Midterm ( ~week 11 )

Topics

Contents

1-2

Assembly Language Fundamentals

3

Data Transfers, Addressing, and Arithmetic

4-5

Procedures

6

Conditional Processing

7

Integer Arithmetic

8

Assembly programming

9

Advanced Procedures 

10

strings and Arrays 

11

Structures and Macros 

12

High-level Language Interface 

13

Assemblers [ SIC / XE Code ]

Some exercises for SIC, SIC/XE

14

Linking Loaders  

15

Macro Processors 

18

Final

 

Exercises: 01 (robot control), 02 (integer arithmetic), 03 (procedures), 04 (strings and arrays)

 

Floating point unit [ppt]

 

Setup paths (read it to see how to setup paths for your computers)

 

Examples:

1. Dump registers

2. Understand CF and ZF

3. Use EQU and TEXTEQU

4. 16-bit asm

5. Fibonacci numbers

6. Procedures: change cursor coordinates

7. Table-driven example: Draw a character according to its location.

8. Table-driven example: control a character to move (up, down, left, right)

9. Draw an irregular bitmap

10. Advance Procedures : Create standard procedure calls, pass parameters and declare local variables.

11. Show Sine Wave. Instruction pdf. A project developed by Sai-Keung Wong for NCTU undergraduate students in 2010.

10. NET2010, moving a character, readkey, explosion, colors, show dialogue box [NEW]

Past Quizzes

201502 [1], 201502 [2]

 

Past Midterm

201502 [1]

 

Past exams:

1. 2010 Midterm Questions

2. 2009 Exam

 

Useful links

http:// www.asmirvine.com (重要資料, 一定要看)

Win32 Assembly

http://www.win32developer.com/asm/windows_tutorial_1.shtm

 

32-bit Assembler is Easy

http://www.codeproject.com/KB/winsdk/assembleriseasy.aspx

 

http://www.winasm.net/forum/index.php?showtopic=807

 

http://www.winasm.net/32bit-assembler-is-easy.html

 

Setup tools in .NET to build your own 16-bit or 32-bit assembly programs.

http://kipirvine.com/asm/4th/ide/vsnet/index.htm

 


last update: 25th Feb., 2018