Module 5 - Week 7 and 8 - Platform Technologies PDF
Module 5 - Week 7 and 8 - Platform Technologies PDF
Module 5 - Week 7 and 8 - Platform Technologies PDF
3. Learning Outcome
In this module, learners are expected to:
1. System Software
A system software aids the user and the hardware to function and interact
with each other. Basically, it is a software to manage computer hardware behavior
so as to provide basic functionalities that are required by the user. In simple words,
we can say that system software is an intermediator or a middle layer between the
user and the hardware. This computer software sanctions a platform or
environment for the other software to work in. This is the reason why system
software is very important in managing the entire computer system. When you first
turn on the computer, it is the system software that gets initialized and gets loaded
in the memory of the system. The system software runs in the background and is
not used by the end-users. This is the reason why system software is also known
as ‘low-level software’.
2. Application Software
Application Software, also known as end-user programs or productivity
programs are software that helps the user in completing tasks such as doing online
research, jotting down notes, setting an alarm, designing graphics, keeping an
account log, doing calculations or even playing games. They lie above the system
software. Unlike system software, they are used by the end-user and are specific
in their functionality or tasks and do the job that they are designed to do. For
example, a browser is an application designed specifically for browsing the internet
or MS Powerpoint is an application used specifically for making presentations.
Application Software or simply apps can also be referred to as non-essential
software as their requirement is highly subjective and their absence does not affect
the functioning of the system. All the apps that we see on our mobile phones are
also examples of Application Software. There is certain software that is exclusively
made for app development like Meteor and Flutter. These are examples of
Application software too.
Graphics Software: As the name suggests, Graphics Software has been devised
to work with graphics as it helps the user to edit or make changes in visual data or images.
It comprises of picture editors and illustration software. Some examples are:
• Adobe Photoshop
• Autodesk Maya
• Blender
• Carrara
• CorelDRAW
• GIMP
• Modo
• PaintShop Pro
Web Browsers: These applications are used to browse the internet. They help the
user in locating and retrieving data across the web. Some examples of web browsers are:
• Google Chrome
• Internet Explorer
Other than these, all the software that serves a specific purpose fall under the
category of Application Software.
However, there exists one more classification of the software. The software can
also be classified based on their availability and shareability.
4. Software
They are also known as Closed-source software. These types of
applications are usually paid and have intellectual property rights or patents over
the source code. The use of these is very restricted and usually, the source code
is preserved and kept as a secret.
COMPUTER ORGANIZATION
Regardless of differences in physical appearance, virtually every computer may
be envisioned as being divided into six logical units or sections. These are:
1. Input Unit – This is the “receiving” section of the computer. It obtains information
(data and computer programs) from various input devices and places this
information at the disposal of the other units so that the information may be
processed.
Second Generation
A programming language that is very similar to machine language, but uses
symbols instead of binary number. A programmer is still forced to think in terms of the
small, incremental steps of the machine’s language.
Example of a 2G programming language is the Algol 60.
Third Generation
A programming language whose statements are translated into machine language
instruction. Examples of high level languages are BASIC, FORTRAN, COBOL, and
PASCAL.
A high-level programming language is a programming language that is more user-
friendly. Instructions in this language must be translated by a compiler or interpreter
before they can be processed.
First and second and third generation languages are all procedural languages
because the programmer must write each step and must use logical control structures to
indicate the or order in which the instruction are to be executed.
Fourth Generation
Nonprocedural languages are easier to code but it gives you less control over how
each task is actually performed.
Example: SQL
Features of 4Gls:
• Easy to learn, understand.
Fifth Generation
Nonprocedural languages they are most often used to access database or to build
expert systems.
Example is the Prolog.
Program Design
The next stage is the program design. The software developer makes use of tools
like algorithms and flowcharts to develop the design of the program.
Algorithm
An algorithm is a step-by-step description of how to arrive at a solution in
the most easiest way. Algorithms are not restricted to computer world only. In fact,
we use them in everyday life.
Flowchart
A flowchart is a diagram that shows
the logic of the program. A flowchart is a
formalized graphic representation of a
logic sequence, work or manufacturing
process, organization chart, or similar
formalized structure. The purpose of a
flow chart is to provide people with a
common language or reference point
when dealing with a project or process.
Debugging
At this stage the errors in the programs are detected and corrected. This stage of
program development is an important process. Debugging is also known as program
validation.
Some common errors which might occur in the programs include:
• Un initialization of variables.
• Reversing of order of operands.
• Confusion of numbers and characters.
• Inverting of conditions e.g. jumping on zero instead of on not zero.
Testing
The program is tested on a number of suitable test cases. A test plan of the
program has to be done at the stage of the program design itself. This ensures a thorough
understanding of the specifications. The most trivial and the most special cases should
be identified and tested. It is always useful to include the maximum and minimum values
of all variables as test data.
Debugging
Refers to the process of detecting, locating and correcting logic errors
(bugs) by submitting a translated program to the computer for execution and
seeing what happens. For this purpose, valid test data must be administered to
see how the program will fare in a similar situation.
Documentation
Documentation is a very essential step in the program development.
Documentation help the users and the people who maintain the software. This ensures
that future modification if required can be done easily. Also, it is required during
redesigning and maintenance.
Documentation also contains technical information such as where and who
created the program, who contact when there’s a problem with the program and
instructions on the use and maintenance of the program.
Software development tools can be things like interpreters that work directly with
code, but they can also be tools that help to make the lives of developers simpler and
easier. For instance, while a user panel assigned to answering the questions of
programmers and sharing knowledge might not have a direct influence on the
development of a particular piece of software, but it does provide relevant solutions for
developers who necessitate answers to vital questions.
So, you can find a very wide variety of other options in the category of software
development tools. Anything that might help to boost the efficiency and accuracy can be
conceivably be added to this category, including communication tools like Slack, libraries
like Stack Overflow, and repositories like GitHub.
Assembler
An assembler translates a program written in assembly language into machine
language and is effectively a compiler for the assembly language, but can also be used
interactively like an interpreter. Assembly language is a low-level programming language.
Low-level programming languages are less like human language in that they are more
difficult to understand at a glance; you have to study assembly code carefully in order to
follow the intent of execution and in most cases, assembly code has many more lines of
code to represent the same functions being executed as a higher-level language. An
assembler converts assembly language code into machine code (also known as object
code), an even lower-level language that the processor can directly understand.
The Assembler is used to translate the program written in Assembly language into
machine code. The source program is a input of assembler that contains assembly
language instructions. The output generated by assembler is the object code or machine
code understandable by the computer.
Assembly language code is more often used with 8-bit processors and becomes
increasingly unwieldy as the processor’s instruction set path becomes wider (e.g., 16-bit,
32-bit, and 64-bit). It is not impossible for people to read machine code, the strings of
ones and zeros that digital devices (including processors) use to communicate, but it’s
likely only read by people in cases of computer forensics or brute-force hacking.
Assembly language is the next level up from machine code, and is quite useful in extreme
cases of debugging code to determine exactly what’s going on in a problematic execution,
Compiler
Compilers convert high-level language code to machine (object) code in one
session. Compilers can take a while, because they have to translate high-level code to
lower-level machine language all at once and then save the executable object code to
memory. A compiler creates machine code that runs on a processor with a specific
Instruction Set Architecture (ISA), which is processor-dependent. For example, you
cannot compile code for an x86 and run it on a MIPS architecture without a special
compiler. Compilers are also platform-dependent. That is, a compiler can convert C++,
for example, to machine code that’s targeted at a platform that is running the Linux OS.
A cross-compiler, however, can generate code for a platform other than the one it runs
on itself.
Interpreter
The translation of single statement of source program into machine code is done
by language processor and executes it immediately before moving on to the next line is
called an interpreter. If there is an error in the statement, the interpreter terminates its
translating process at that statement and displays an error message.
Compilers translate code all at once and the processor then executes upon the
machine language that the compiler produced. If changes are made to the code after
compilation, the changed code will need to be compiled and added to the compiled code
(or perhaps the entire program will need to be re-compiled.) But an interpreter, although
skipping the step of compilation of the entire program to start, is much slower to execute
than the same program that’s been completely compiled.
The interpreter moves on to the next line for execution only after removal of the
error. An Interpreter directly executes instructions written in a programming or scripting
language without previously converting them to an object code or machine code.
Example: Perl, Python and Matlab.
Lightweight editors
“Lightweight editors” are not as powerful as IDEs, but they’re fast, elegant
and simple.
They are mainly used to open and edit a file instantly.
The main difference between a “lightweight editor” and an “IDE” is that an
IDE works on a project-level, so it loads much more data on start, analyzes the
Commands in Debug
• A (Assemble)
Allows you to create program in mnemonic or symbolic code. It also
translates this assembly source statements that you create into machine code.
Ex: -A 0100
• D (Display or Dump)
ISUE–CCSICT –IM-092 - Instruction Material Page 29
ISUE__ __ Syl ___
Revision: 02
Effectivity: August 1, 2020
Displays the content of a portion memory in hex and ASCII forms starting
with the given address.
Ex: D 0200
• E (Enter)
Enables you to key in data or machine instructions into memory beginning
at a specific location address.
Ex: -E 0200
• G (Go)
Runs the program as a whole in memory and displays the output.
Ex: -G
• H (Hexarithmic)
Shows the sum and difference of two 4-bit hexadecimal numbers, coded as
H <hex value> <hex value>
Ex: -H 000C 0008
• N (Name)
Gives a name to your program, coded as N <path><filename>. The base
name of the filename must be eight characters long and the extension name is
.COM
Ex: N SAMPLE.COM
• Q (Quit)
Finishes the Debug session and exits back to DOS environment
Ex: -Q
• R (Registers)
Allows you to display all registers and their values. It also shows the next
instruction and permits you to change the value of a particular register.
Ex: -R
-R CX
• T (Trace)
H e l l o space W o r l d !
48 65 6C 6C 6F 20 57 6F 72 6C 64 21
H e l l o space W o r l d ! $
48 65 6C 6C 6F 20 57 6F 72 6C 64 21 24
Enter the hex codes using the command E and the offset address which is 0100. Press
the space every after hex code entered.
SUB (Subtract)
• It is used to get the difference of two registers or a register and an immediate
data, and stores the result to the left most register.
Example: MUL CX
DIV (Divide)
Example: DIV BX
INC (Increment)
• It is used to increase the value of the register by one (1).
Example: INC AX
INC CH
DEC (Decrement)
• The opposite of INC, instead of increasing, it decreases the value of the
register by one (1)
Example: DEC AX
DEC CH
LOOP (Loop)
• It controls the execution of a program segment in a specified number of
times. The CX register should contain a count value before starting the
loop and automatically decrements by one (1). If CX is not equal to zero
(0), it transfers to its operand address which points to the start of the
loop; otherwise it drops through to the next instruction.
- A 0100
1035:0100 mov ax,D0C1
1035:0103 mov cx,0E05
1035:0105 add ax,cx
1035:0108 dec ax
1035:010A int 20
1035:010C
-
2. Displaying the same character (lowercase ‘z’) thirty times using loop on the screen.
-A 0100
1358:0100 MOV CX,001E ;setting the number of loops
1358:0103 MOV AH,2 ;request display character
1358:0105 MOV DL,7A ;character to display
1358:0107 INT 21 ;call interrupt service
1358:0109 LOOP 0107 ;go to offset 0107
1358:010B INT 20 ;end
Assessment Task 1
TEST 1. TRUE OR FALSE: Read the statements carefully. Write T if is correct otherwise, write F
on the space before the number.
___1. Programs are set of instructions that performs specific task.
___2. Computers are made to perform instructions given to them.
___3. Digital representation means the manipulation of “on” and “off” signals to perform tasks.
___4. In hardware concepts, computer can directly accept and process instructions written in
any programming language.
___5. Anything that can be store electronically are called software.
___6. There are two categories of software, the system software and application software.
___7. In SDLC, planning phase is where system/program requirements are identified.
___8. The design phase in SDLC involves identification for the enhancement/s of the current
system being used.
___9. Algorithm is not a programming tool it just shows the sequence in solving the particular
problem.
___10. Implementation phase involves coding, testing and installation.
___11. Algorithm is defined as well-defined, simple mathematical and logical procedures that can
be followed to solve a problem in a finite number of steps.
___12. Instructions are statements that result to a Boolean value.
___13. Relational operator reverses the logic or result of a certain condition.
___14. A program has to be written using a programming language before a computer can
execute it.
___15. A high-level language uses English-like abbreviations in place of binary patterns.
2. Show the registers and its contents provided by the microprocessor of your
computer. Write code and your output on the space provided.
3. Enter a value for BX, CX and DX registers. Write your code and output on the
space provided.
Enter and display your name, course, subject and section starting at memory location 0200.
1. Trace the contents of the AX, BX, CX, and DX registers of the given debug program.
- A 0100
MOV AX,1250
MOV BX,C0A1
MOV CX,0002
ADD BL,CL
SUB BH,AH
MOV DX,BX
INC CX
DEC DX
MUL CX
INSTRUCTION AX BX CX DX
MOV AX,1250
MOV BX,C0A1
MOV CX,0002
ADD BL,CL
SUB BH,AH
MOV DX,BX
INC CX
DEC DX
MUL CX
INT 20
Create a debug program and execute the whole program. Sample Output:
Zach Corpuz
ICT
I.S.U. - Ilagan
1. Create a debug program using LOOP instruction that will display the given output
on the screen.
ZY_WV _TS_QP_NM_KJ_HG_ED_BA_
2. Create a debug program using loop instruction that will display a simple graphic.
https://squareboat.com/blog/different-types-of-software-with-examples
https://www.cseworldonline.com/articles/stages-of-program-development-
process.php
https://hzltenedero.wordpress.com/category/program-development-process/
https://www.geeksforgeeks.org/software-engineering-program-development-life-
cycle-pdlc/
http://whatis.techtarget.com/definition/0,,sid9_gci212134,00.html
https://www.goodfirms.co/glossary/software-tools/
https://www.geeksforgeeks.org/language-processors-assembler-compiler-and-
interpreter/
https://techterms.com/definition/dos#:~:text=Stands%20for%20%22Disk%20Operatin
g%20System,used%20by%20IBM%2Dcompatible%20computers.&text=DOS%2
0uses%20a%20command%20line,the%20user%20to%20type%20commands.
https://www.c3scripts.com/tutorials/msdos/commands.html
https://www.ionos.com/digitalguide/server/know-how/ascii-codes-overview-of-all-
characters-on-the-ascii-table/
http://www.asciitable.com/