Course: CET 3510 – Microprocessor System Technology
Instructor: Dr. José M. Reyes Álamo
Phone: (718) 260-5885
Office Hours: Wednesday 1:00-2:00 PM; 4:00-5:00 PM or by appointment.
Pre/Co-requisites: MAT1575, CST2403
Pre- requisite: Operating System Lab and a course in digital electronics
The Art of Assembly Language, 2nd Edition. No Starch Press, 2010. Hyde, R. ISBN 9781593272074.
Reference Books and Resources:
- The Intel Microprocessor Family : Hardware And Software Principles and Application, Antonakos,Jame, ISBN-13: 978-1418038458, Delmar Cengage Learning; 2006.
- Outline of Computer Architecture, Carter, N., Schaum, McGraw-Hill, 2002.
- C++ Primer Plus, 5th Ed., Prata, S., SAMS, 2005.
- Beginning Linux Programming,3rd Ed., Matthew, N., & Stones, R., Wrox, 2004.
Course Description: An introduction to microcomputer architecture and the basic concepts used in the Intel Microprocessor Family. Key features of the PC are explored by writing programs in a high level language (such as C) to access them. Assembly language programs are utilized to gain insight into machine level operations. Laboratory exercises support the lecture, and are carried out in the context of currently available operating systems.
Any activity that threatens the CityTech’s academic integrity will result in a disciplinary action. Such activities include, but are not limited to, inside or outside classroom cheating, copying others work in preparation of your own, giving or receiving information during quizzes, tests and final examination.
The classroom expects you to observe basic common courtesies such as manners of address, not interrupting, not talking in class, etc. No one has any right to engage in disruptive behavior in the classroom. If you must leave class early, please let an Instructor know at the beginning of the period. Sitting near an exit will minimize the disturbance when you leave. Obviously, you may leave at any time or impending sickness or emergency. Otherwise please do not leave the classroom until the class is dismissal. Also, if you have a cellular phone, please turn to vibrating or silence mode. Thanks for your cooperation.
Students and all others who work with information, ideas, texts, images, music, inventions, and other intellectual property owe their audience and sources accuracy and honesty in using, crediting, and citing sources. As a community of intellectual and professional workers, the College recognizes its responsibility for providing instruction in information literacy and academic integrity, offering models of good practice, and responding vigilantly and appropriately to infractions of academic integrity. Academic dishonesty is prohibited in The City University of New York and is punishable by penalties, including failing grades, suspension, and expulsion.
Under CUNY mandate, attendance in EACH class is REQUIRED and attendance will be taken at each class meeting. You are allowed a maximum of 2 absences. If you exceed that number, you may receive a WU grade. Excessive lateness (more than 10 minutes) will be considered to be an absence from that class meeting. Attendance will be counted as portion of your course grade. Show the doctor’s note or family emergency note, otherwise each absent will be counted as 2% as portion of the course grade.
The assignments build progressively; it is to your advantage to attend each and every class meeting. New material is presented in every class. You are responsible for all matters treated in class, whether you are there or not. This includes the lecture, class discussion, handouts, lab (if required), announcements about changes in the course outline, and announcements about changes in test and final exam dates.
Problems will be assigned regularly at the lectures. Assignment will be announced at the classroom and CUNY Blackboard. Your homework must be submitted to CUNY Blackboard on time.
Labs will be given regularly. Lab reports will be graded based on the project (lab) report formative. Grading of lab reports will take into account the quality of the written presentation (logical statement of objectives and conclusions, proper terminology, grammar, spelling, etc.)
Each Lab grade will be based on the lab report and the activities you involved.
Quizzes will be given regularly. There is NO make-up quiz.
There will be one in-class mid-term examinations. The examination date will be announced at later time. There is NO make-up examination.
Final examination will be given on Week 15. A final date will be announced at later time. There is NO make-up final examination.
Your grade in this course will be based on attendance/participation, homework, quizzes, examinations, and a cumulative final:
Midterm Exam 25%
Final Exam or Project 25%
|A||93 – 100|
|A-||90 – 92|
|B+||87 – 89|
|B||83 – 86|
|B-||80 – 82|
|C+||77 – 79|
|C||70 – 76|
|D||60 – 69|
|F||0 – 59
Withdrawal Date: Check for College Academic Calendar
Students who are failing should consider officially withdrawing on or before the Withdrawal Date to avoid an F or WU grade
- Understand and be familiar with selected principles of Intel x86 family microprocessor architecture.
- Understand the architecture of CPU including ALU, Registers and Control Unit.
- Understand the computer Memory Organization.
- Be able to access I/O ports to sense the input and trigger the output.
- Write Assembly language program using “High Level Assembler” (HLA).
- Utilized Assembly language programs to gain insight into instructions and machine-level operations.
- Operating Systems; understand computer System; understand the role of the operating system; and components of an operating system; install compilers of gcc, and hla in Linux operating system. – week 1. Ch 1.1-1.5.
Topics Covered and Time Table:
Lab: Booting into Linux; The Linux (UNIX) file system – basics; Shell commands –vi, cd, ls, pwd, df, cp, rm, mkdir, rmdir, mount; Drives vs. directories; File permissions.
Intro to GNU tools; Create & Edit w/ emacs or vi editor; Type & run a “hello world” HLA program.
- Using assembly language to study PC architecture; Von Neumann Machines. The Intel x86 CPU – Registers, Processor Flags, System Bus; Random Access Memory (RAM); Moving data between CPU & RAM; big vs. little endian. – week 2-3. Ch1.6-1.8, Ch1.10, and Ch3.13
Lab: Create, edit, compile, and run an HLA program for data moving between 80×86 registers (AL, AX, EAX, EBX, etc.) to RAM, ect.
Lab: Map the storage of a data word from 80×86 registers (AL, AX, EAX, EBX, etc.) to RAM addresses (little endian).
- “High Level Assembler” (HLA). Elements of an HLA program; Data representation and data organization; Basic HLA Control – convert binary to/from hex; Two’s complement for subtraction; Zero extension, sign extension; – week 4. Ch1.9, Ch 2.1-2.5, Ch 2.8-2.9
Lab: Create, edit, compile, and run an HLA program that conducts number conversion and sign and zero extensions. Condition code for processor.
- 80×86 Instructions and machine code – mov, add, shl, cmp, jmp etc; Flow control, HLA library functions; Logical Instruction, Integer arithmetic in assembly language programs; Comparison; use of flags – week 5-6. Ch 2.6-2,7, Ch 2.10-2.11, Ch 6.1-6.3 Ch 7.1-7.4
Lab: Create, edit, compile, and run an HLA program that carries out arithmetic operations and logical operations as assigned.
Lab: Low-level control and Condition code for transfer of control
- Manipulating strings of bits using 8-x86 assembly language. – week 7 Ch 10.1-10.4
Lab: Create appropriate masks and perform the appropriate operation to set a bit to 1, set a bit to 0, toggle a bit, or test a bit
- Differences between HLA and “pure” assembly language – examining “pure” assembly source created by HLA – week 8
Lab: Compile a C program to assembly language – edit the assembly language file, compile it, & run the program.
- Input & output via ports; Port space vs. memory – mapped I/O; Addressing PC hardware; register layout of the parallel port; TTL input & output; EM130 digital trainer as a TTL device. – week 10-11
Lab: Run and modify an instructor-supplied program to use the parallel port
- CPU addressing modes; Memory organization – “segments”; Using the stack; Accessing the characters of a String – week 12. Ch 3, 4.
Lab: Create, edit, compile, and run a program that uses the stack (as assigned).
- Floating‐Point Arithmetic and 80×86 floating point instruction – week 13, Ch2.12, Ch6.5
Lab: FPU data type, FPU data movement.
- Bitwise operations in C / C++; Left & right shifting; Use of masks to test, set, or invert one or more bits. Breaking a C program into functions; passing arguments and utilizing return values. Review for final exam – week 14
Lab: Convert HLA code to functions written in C program. Perform bitwise operation in C.
First, we develop an understanding of the hardware of a standard PC by writing assembly language programs that show us how a computer carries out some important operations. We then use this understanding to write close – to – the – hardware programs in C or C++ that interact with computer hardware (specifically, the parallel port and / or an ISA – bus data acquisition card). These programs will enable the computer to:
1) Read and write digital inputs and outputs
2) Produce analog voltages, with the help of an external circuit
3) Read analog voltages
Finally, we will package portions of our programs as functions for later reuse.
Much of our lab work will consist of writing programs, but we will also see how these programs cause the computer to interact with the physical world. This will involve building circuits to connect with the computer and using standard bench equipment (such as multimeters and power supplies) to examine the behavior of these circuits.
This course covers a wide range of topics. No single book covers all of them. We have done our best to keep the total cost of the required and recommended books as low as possible. (“Parallel Port Complete” is particularly likely to be useful in later courses for project design.) In addition to the textbooks for this course, you will need your CS403 text. The book by Prata is recommended for those who do not have their CS403 text (or another introductory C++ book). The Schaum’s Outline (by Carter) is not required, but is recommended, particularly for those who would like more background material on computer arithmetic.
The reference text by Matthew & Stones will only be used briefly in this course, but it is a required text for EM640. The remaining references are listed primarily for use by instructors.
While all of the lab work can generally be done during the allotted laboratory time, it is helpful to have access outside of class hours to a PC with Linux installed. (The high level assembler can also be installed under Windows, and “Parallel Port Complete” contains software tools that will allow port access under some versions of Windows. These features may make it possible to do some work at home on a Windows – based PC. However, all work in class will be done using Linux, since it gives us full access to the hardware without requiring ANY non – standard add – ons.) The high level assembler can be installed from the CD-ROM supplied with the Hyde textbook or downloaded from the publisher’s Web site. While we do not have the resources to install the software for you, we will provide setup assistance as time and resources permit.
The Instructor reserves the right to modify this syllabus at anytime
All email communications must be from a CityTech email address. The subject line must include “CET3510” and your section number.