Jsaer2016 03 01 17 20
Jsaer2016 03 01 17 20
com
ISSN: 2394-2630
Review Article CODEN(USA): JSERBR
Hieu Vu
American University of Nigeria, School of Information Technology and Computing, Yola, Adamawa
State, Nigeria
Abstract Assembly language was one of the earliest programming languages developed and used in business. It
is the one and only one classified as low-level language, and difficult to learn and to program. As with the
rapidly improvement in high technology, the programming paradigms is also change, and the Assembly
language seems to be forgotten. However, Assembly programming is considered as an art in programming,
because the programmers must know the logic of the program and internal detail of the hardware system.
Keywords Assembly, Programming language, Low-level language, High-level languages, CPU, C++,
Java.
1. Introduction
It is important to know that the lifeblood of computer science is software development. For a computer scientist,
programming is a primary tool to communicate with a computer and to program the computer what to do. This
is why a part of computer science curricula is the study of programming. As computing hardware becomes
faster, and more powerful, application software also improved and becomes more complicated. New generation
of computer’s software can do a lot more than the previous generation can, and for the programmers, the job of
developing the application becomes more complicate and challenging. The heart of software development is
problem solving [1]. To develop a software application, the developers or programmers need problem solving
skill and a programming language. The programming languages have evolved over the time, from machine
language to low-level language (Assembly) then to high-level language (COBOL, FORTRAN, C, etc...) and to
object oriented language such as C++, Java, VB, and C#. There are numerous programming languages that have
been used today such as C++, Java, Visual Basic, COBOL, Assembly, etc. Each programming language has its
own characteristics, and usability. This research paper introduces, studies some special characteristics of the
Assembly language and its relationships with high level languages such as C++ and Java.
2. Problems
Programming languages have been used by programmers to develop applications for many years. These
professionals were trained to work with a particular programming language, which was adopted by their firms.
The programmers are knowledgeable, and very good in doing their job. But when you ask a programmer
questions such as “How the computer executes the instructions?” or “What really happen inside the computer’s
CPU, and the RAM memory?”. He or she might not be able to provide clear answers to these questions, because
they don’t know the internal details of the system. The answers for these questions are embedded inside the
Assembly language, and it is sadly to know that many colleges and universities are dropping the Assembly
17
Hieu Vu Journal of Scientific and Engineering Research, 2016, 3(1):17-20
language from their computer science curricula. A computer-related professional should also be aware of the
development of new programming language. What are the new features, and advantages of a new programming
language? How does it change and impact the programming model?
18
Hieu Vu Journal of Scientific and Engineering Research, 2016, 3(1):17-20
Output
C:\ASM>datePgm
Today is: 2/3/2004
C:\ASM>
This program uses macro _getDate to get the system date. After the call, the assembler will automatically place
the month in register DH, day in DL, and the year in register CX. The other macros _putCh used to print the
slash (/) will destroy the contents of both registers AX, and DX therefore we need to save values in both
registers before calling the macro. To display numeric value such as the month, first we need to move the month
into register AX then call subprogram call putDec to print the value (whatever value currently in register AX).
As we can see, the Assembly language can directly accesses and manipulates the registers inside the CPU
(Central Processor Unit, the heart of the computer). Not only the logic of a program, the Assembly programmers
must also know how to use these registers, to store data and where the result is stored (register AX) after the
calculation. This is an art in programming.
19
Hieu Vu Journal of Scientific and Engineering Research, 2016, 3(1):17-20
- Multiplication and division an unsigned number by a power of 2. We know, in binary, position of a bit is a
power of 2, therefore shifting to the left has the effect as a multiplication, and shift to the right is equivalence to
a division of power of 2.
; multiplicand is in AX
mov CX, 32 ; multiplier is in CX (25)
mul CX
; or only one shift instruction
sal AX, 5 ; shift arithmetic by 5 position [4]
The same for shift to the right: (sar AX, 5) will restore value in AX.
Conclusion
To be an expert on the field of computer programming, a programmer should also know the hardware system,
understand how a computer executes instructions. The answers for these questions stated in “Problem”
paragraph. Only the Assembly programmers can claim that they are truly the master in programming and
programming is an art. But, it is sadly to know that many colleges and universities are dropping the Assembly
language from their computer science curricula. The conclusion for this essay is left for the readers. Should
Assembly language be instated back as a core course in computer science curriculum?
References
[1]. Riley, David D., (2003). The Object of JAVA, Blue Jay Edition. Addition Wesley, Pearson Education,
Inc. Pp: xxv.
[2]. Cashman, T. J., & Sheily, G. B. (1971). Introduction to computer programming IBM system/360
assembler language. Pp: 3.2.
[3]. William Jones, (2005). Assembly Language for the IBM PC Family (3e). Addition Wesley. ISBN10: 1-
57676-058-8. Pp: 60.
[4]. Sivarama P. Dandamudi (2005). Introduction to Assembly Language Programming. Springer. ISBN 0-
387-20636-1. Pp: 272-283.
[5]. Abel, Peter, (1998). IBM PC Assembly language and Programming (4e). Prentice Hall. Upper Saddle
River, NJ. 07458. Pp: 50.
[6]. Randall Hyde, (2010). The Art of Assembly Language (2e). No Starch Press. ISBN: 978-1-59327-4.
Pp: 2.
20