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 -Assembly language step by step, by Jeff Duntemann,1992 Alternative: Assembly Language Programming and Organization of the IBM PC, Ytha Yu and Charles Marut Course Introduction Course Assessment Assessment Week Due Proportion of Final Assessment Assessment Task 1 Major exam 1 Week 7 10% 2 Major exam 2 Week 12 15 % 3 Project Week 11 5% 4 Lab exercise and Quizzes Every Week 5% 5 Programming Homework Every 2 Weeks 5% 6 Final Lab End of Semester 20% 7 Final exam End of Semester 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 = Machine that can solve problems HOW? YOU tell it what to do~~ IN 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. 0010100110101001001 1101011011110100101 1101101010000100110 1000001001001001101 •The instructions are written in a language called: 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 allows multiple programs to run Processor Control unit Datapath ALU Controller Control /Status Large, complex components to interact Too tedious to write all this in machine code!!! Registers PC IR I/O Memory Part II: Assembly Language Computer languages Machine Language Assembly Language High-Level Language Collection of binary numbers Symbolic form of machine language (I.e. symbolic names are used to represent operations, registers & memory locations Combines algebraic expressions & symbols taken from English language (ex. Pascal, COBOL FORTRAN, …etc) Ex. Ex. Ex. 10100001 00000000 00000000 MOV AX,A 00000101 00000100 00000000 ADD AX,4 10100011 00000000 00000000 MOV A,AX Course Introduction - Part II: Assembly Language A=A+ 4 Computer languages (Continue) Machine Language Directly understood by a computer Not standard (I.e. different machine language for every type of machine Assembly Language High-Level Language Assembler converts to machine language Compiler (or interpreter) converts to machine language 1 assembly language instruction = 1 machine 1 HLL instruction = many machine language language instruction instructions Not standard (I.e. different assembly language for every type of machine) Standard (I.e. programs are independent of the 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