ScholarQuill logoScholarQuillUniversity Notes
My Semester
Explore Notes
Past Papers12 New
Video CoursesNew
Search
Settings
Study Tools
GPA/CGPA Calculator
Schedule & To-Do
Student Portal
Contact
Contact
ScholarQuill logo
My Semester
Explore Notes
Past Papers12 New
Video CoursesNew
Search
Settings
GPA/CGPA Calculator
Schedule & To-Do
Student Portal
Contact
ScholarQuill logoScholarQuillUniversity Notes
Study PortalCOMP2118Introduction To Comput…
Ctrl + K
Login
Explore
Search
Semester
Papers
CGPA
    COMP2118

    Computer Organization and Assembly Language

    Progress0 / 35 done
    Topics35
    1Introduction to Computer Systems2Information is Bits + Context3Programs are Translated by Other Programs4Understanding Compilation Systems5Processors Read and Interpret Instructions6Caches Matter7Storage Devices Form a Hierarchy8The Operating System Manages the Hardware9Systems Communicate Using Networks10Representing and Manipulating Information11Information Storage12Integer Representations13Integer Arithmetic14Floating Point15Machine-Level Representation of Programs16A Historical Perspective17Program Encodings18Data Formats19Accessing Information20Arithmetic and Logical Operations21Control22Procedures23Array Allocation and Access24Heterogeneous Data Structures25Understanding Pointers26Using the GDB Debugger27Out-of-Bounds Memory References and Buffer Overflow
    28Extending IA-32 to 64 Bits29Machine-Level Representations of Floating-Point Programs30Processor Architecture31The Y86 Instruction Set Architecture32Logic Design and the Hardware Control Language (HCL)33Sequential Y86 Implementations34General Principles of Pipelining35Pipelined Y86 Implementations
    6 min read
    Topic 1 of 35
    Topic Study Note Illustration
    01

    Introduction to Computer Systems

    A computer system is a collection of hardware and software that work together to perform tasks. To understand a computer system, we need to break it down...

    Introduction to Computer Systems

    A computer system is a collection of hardware and software that work together to perform tasks. To understand a computer system, we need to break it down into its basic components and see how they interact with each other. Let's explore the key parts and concepts involved:


    1. Basic Components of a Computer System

    A computer system consists of several key components:

    1. Hardware – These are the physical parts of the computer. They include:

      • Central Processing Unit (CPU): Often called the "brain" of the computer. The CPU executes instructions from programs and controls the operations of the computer. It has two main parts:
        • Control Unit (CU): Decodes and executes instructions.
        • Arithmetic Logic Unit (ALU): Performs mathematical operations and logic comparisons (like addition, subtraction, and checking conditions).
      • Memory: This stores data and instructions that the CPU needs to perform tasks. There are two main types of memory:
        • Primary Memory (RAM): Temporary storage that is fast and used by the CPU for current tasks. It’s erased when the computer is turned off.
        • Secondary Memory (Storage): Long-term storage devices like hard drives or SSDs, where data is saved permanently (or until deleted).
      • Input Devices: These allow the user to enter data into the computer (e.g., keyboard, mouse, microphone).
      • Output Devices: These allow the computer to give feedback to the user (e.g., monitor, printer, speakers).
    2. Software – These are the programs and instructions that run on the hardware. Software can be divided into:

      • System Software: These programs control and manage the hardware and allow other software to run. The most important system software is the Operating System (OS), such as Windows, macOS, or Linux. It helps manage memory, hardware, and input/output devices.
      • Application Software: These programs perform specific tasks for the user, like web browsers, word processors, or games.

    2. How the Computer Works Together

    • CPU and Memory: The CPU works closely with the computer's memory. When a program is run, the instructions and data are loaded from storage (like your hard drive) into RAM (the primary memory). The CPU then fetches, decodes, and executes these instructions one by one.

    • Buses: A computer uses buses to transfer data between components like the CPU, memory, and storage. Think of a bus as a series of pathways that carry information in the form of electrical signals.


    3. The Role of the Operating System

    The Operating System (OS) is the software layer that manages hardware and provides services for application software. It controls things like:

    • Resource Management: The OS allocates resources (like memory, CPU time, and storage) to ensure programs run smoothly and don't interfere with each other.
    • User Interface: The OS provides the interface that allows users to interact with the computer, typically through a graphical user interface (GUI) or a command line interface (CLI).
    • File Management: The OS helps organize and manage files, allowing you to store, retrieve, and manipulate data.

    4. The Role of the CPU in Computer Systems

    The CPU executes the basic instructions that tell the computer what to do. These instructions are written in machine code, which is the lowest-level programming language that a CPU can understand.

    The CPU works in cycles:

    • Fetch: The CPU retrieves an instruction from memory.
    • Decode: The CPU figures out what the instruction means (e.g., whether it’s adding two numbers or moving data).
    • Execute: The CPU performs the task, such as performing a calculation or writing data to memory.

    5. The Concept of Machine Language and Assembly Language

    At the lowest level, computers understand machine language, which consists of binary numbers (0s and 1s). These binary numbers represent instructions and data.

    However, humans find machine language very difficult to work with, so we use higher-level languages like Python, Java, or C. These languages are translated into machine code using a compiler or interpreter.

    Assembly Language is a step between high-level languages and machine language. It uses human-readable commands (like MOV, ADD, SUB) but still closely maps to the underlying machine code. Each assembly instruction corresponds to a single machine instruction.


    6. How Data is Represented in a Computer

    In a computer system, all types of data—whether numbers, text, images, or sound—are ultimately represented as binary data (1s and 0s). These binary digits (bits) are grouped together to form larger data types:

    • Byte: A group of 8 bits.
    • Word: Typically 2 or 4 bytes, depending on the computer’s architecture.

    For example:

    • A character (like 'A') is represented by a unique binary code, often using a system called ASCII (American Standard Code for Information Interchange).
    • Numbers are represented in binary, and arithmetic operations are carried out using the ALU in the CPU.

    7. The Evolution of Computers

    Computers have evolved significantly over time. Early computers were huge and took up entire rooms. Modern computers, on the other hand, are much smaller, faster, and more powerful, thanks to advancements in technology like transistors, integrated circuits, and microprocessors.

    There are also different types of computers:

    • Personal Computers (PCs): Desktops and laptops used by individuals.
    • Servers: Powerful computers that provide services to other computers over a network (e.g., web servers, email servers).
    • Embedded Systems: Specialized computers designed to perform specific tasks (e.g., in cars, smartphones, or microwaves).

    Conclusion

    A computer system is a combination of hardware and software that work together to perform tasks. The CPU is the central part that processes instructions, while memory stores data temporarily or permanently. The operating system manages resources, and software allows users to interact with the system and perform various functions. In addition, computers represent all data in binary, and assembly language serves as a bridge between machine code and higher-level programming languages.

    Understanding how computer systems work gives us insight into how programs are executed and how data flows through a system. It also lays the foundation for learning more advanced topics like computer organization, assembly language, and computer architecture.

    Next topic 2 →
    Information is Bits + Context

    Past Papers

    Open this section to view and download past papers

    Click on Show Past Papers to load available exam papers.

    Reading Progress
    0%
    6mremaining
    1.0kwords
    Intermediatelevel
    On This Page

    No headings found

    Study Toolkit

    Subject Portal

    Computer Organization and Assembly Language