Dept. of Computer & Information Sciences (Course Introduction) Princes Nora Bint Abdul Rahman University Dept. of Computer & Information Sciences CS 321 Computer Organization & Assembly Language Lecture 1 (Course Introduction)
Course Introduction Instructor: Sarah AL-Hammad Location: Room no. 2027 ( 2nd floor) e-mail: smalhammad@pnu.edu.sa Credit Hours: 3 Course web site: http://cs321.yolasite.com Course Introduction
Course Introduction Text Book Part I: Microprocessor Theory and Applications with 68000/68020 and Pentium by M.RAFIQUZZAMAN,WILEY,2008 Text Book Part II: IBM PC Assembly Language and Programming, by Peter Abel,2001 Course Introduction
Proportion of Final Assessment Course Assessment Assessment Assessment Task Week Due Proportion of Final Assessment 1 Quiz 1 Week 5 5 % 2 Major exam Week 10 20% 3 Project Week 15 5% 4 Lab exercise Every Week 5 Programming Homework Every 2 Weeks 10 % 6 Quiz 2 Week 12 7 Final Lab End of Semester 10% 8 Final exam 40% Note: NO MAKEUP EXAM/QUIZ WILL BE TAKEN ZERO WILL BE GIVEN TO STUDENTS WHO COPY ASSIGNMENTS Course Introduction
Lecture Outline Part I: Computer Organization Part II: Assembly Language Reading: Class Notes Course Introduction
Part I: Computer Organization Main hardware components and their relation to the software. What the computer does when it executes an instruction. Course Introduction - Part I: Computer Organization
Part I: Topics to be covered Introduction to computer organization Processors Memory Organization Memory hierarchies Input/output Buses DMA Interrupts Reading and writing operations Course Introduction - Part I: Computer Organization
What is a Computer? HOW? = Machine that can solve problems YOU tell it what to do~~ IN A PROGRAM!!!
What is a Program? A collection of instructions. The instructions are a series of 1’s and zero’s that control the internal circuitry of the processor. The instructions are written in a language called: Machine Language 0010100110101001001 1101011011110100101 1101101010000100110 1000001001001001101
Machine language Difficult and tedious for people to use because of simplicity A large gap between what is convenient for People and what for computers People want to do X but computers limitation is only to Y
General Architecture General Architecture allows multiple programs to run Large, complex components to interact Too tedious to write all this in machine code!!! Processor Control unit Datapath ALU Registers IR PC Controller Memory I/O Control /Status
Part II: Assembly Language Computer languages Machine Language Assembly Language High-Level Language Collection of binary Symbolic form of machine Combines algebraic numbers language (I.e. symbolic expressions & symbols taken names are used to represent from English language operations, registers & (ex. Pascal, COBOL memory locations FORTRAN, …etc) Ex. Ex. Ex. 10100001 00000000 00000000 MOV AX,A A = A + 4 00000101 00000100 00000000 ADD AX,4 10100011 00000000 00000000 MOV A,AX Course Introduction - Part II: Assembly Language
Computer languages (Continue) Machine Language Assembly Language High-Level Language Directly understood by a Assembler Compiler (or interpreter) computer converts to machine converts to machine language language 1 assembly language 1 HLL instruction = many instruction = 1 machine machine language language instruction instructions Not standard (I.e. different Not standard (I.e. different Standard (I.e. programs are machine language for assembly language for independent of the machine every type of machine every type of machine) on which they will be executed) Course Introduction - Part II: Assembly Language
Advantages of Assembly Language Performance: A well-written Assembly language program produces a faster, shorter machine language program. For Some applications speed and size is critical Access to hardware: Some operations, such as reading or writing to specific memory locations & I/O ports can be done easily in Assembly but may be impossible by a higher level language. Studying ASM language gain a feeling of the way the computer thinks and the way things happen inside the computer. Course Introduction - Part II: Assembly Language