NGASM Improved Programmer's Manual
NGASM Instinctive Programming Cource
Programmer's Manual - the next step
In NGASM Improved
Programmer's Manual these are dealt with thoroughly:
Apart from these, NGASM Improved Programmer's Manual adds
Code examples as separate files.
for Code examples as separate files.
NGASM Improved Programmer's Manual costs
just about US$ 5.
Instinctive Programming Course - the smart step
Instinctive Programming Course takes you to the level of using Hash
Tables on day one.
It costs at
a heavily discounted price of just about US$ 10.
speeds up your learning process taking you to the level of
text from a text file on DAY ONE
Processing text line by line on DAY ONE
Using Hash Table on DAY ONE
level knowledge in using STRUCTures, the MOV Instruction, and
the CMP Instruction is enough to give one th e experience of designing,
implimenting and using Hash Tables.
Hash Table with Linked List on DAY ONE
and using Hash Tables, just starting level knowledge is enough
in creating and using STRUCTures
2) in using
the MOV Instruction
in using the CMP Instruction
NGASM 8086/8088 Assembler v1.4 Freeware
This planet's only Assembler with 7000 lines
Programmer's Manual with extensive Instruction Set Documentation and
code examples suitable even for children. If you go with your instinct,
you can do better with NGASM than with many tutorials put together.
Reserve theoretical overload for the 386. NGASM is more suited to
children or anyone not theoretically overloaded like university degree
What does the Programmer's Manual contain?
NGASM Programmer's Manual as used by The Hong Kong Polytechnic University
8086/8088 Assembler v1.4
NGASM 8086/8088 Assembler v1.3
Choice Award from RedSofts.com
Clock TSR source code. Runs on WINDOWS XP.
Real Time Clock Alarm TSR source code. Runs on
Download this QuickLaunch TSR source code. Runs on
3 Dimensional Array Interpreter
Youngest guys using NGASM:
Marc - 14 years young when he claimed to be using NGASM
Peter - 16 years young when he claimed to be using NGASM
Anyone younger than Marc?
The Programmer's Manual is
www.xrgsal.stumbleupon.com Review: NGASM
8086/8088 Assembler with 8086/8088 Instruction Set Documentation, a
true 16-bit assembler, the manual is incredible.
8086/8088 Assembler v1.4, requires you to
download Takeshi Kataoka's Debugger DDEB.EXE,
so that you can view the PUSHA and POPA
Instructions when debugging
- FREEWARE Assembler for
students and everyone having a PC who need to learn Assembly Language.
This is the Assembler that gets you straight to writing code, writing
TSR's and to using DEBUG.EXE even on WINDOWS XP. It comes with sample
programs for the 8086/8088. You can copy and paste the sample code
provided for any Instruction to a file which you can assemble to create
a .COM executable which you can then debug (trace inside DEBUG.EXE) for
quickest understanding. Then you can read the theory - the description
- for the Instruction to reinforce your understanding.
- Very easy to learn. There is no need for
red tape directives and Operator Precedence Rules. Coding is simple and
very straight forward. As no .OBJ file is created, you know, a linker
is not needed. You can become a self-taught programmer (we didn't have
the Internet when we wrote the first version of NGASM in 1995-96, our
city was not Internet-enabled then!!!). If you debug a lot, your
instinct and DEBUG.EXE will guide you through. New approach? You got
- NGASM 8086/8088 Assembler v1.4
comes with a free Programmer's Manual. By using
Ralf Brown's Interrupt List you can enable yourself endlessly by
learning to call all the BIOS and DOS
Interrupts without ever worrying about how to use NGASM
8086/8088 Assembler v1.4 even for a second.
- The comprehensive Programmer's
Manual (7000 lines long) describes 8086/8088
Instruction Set like never before. Every Instruction has Code
example(s). This is the only Assembler on planet Earth that
comes with code examples for you to understand the 8086/8088
- Uses only 5
most often used Assembler Directives and only 10
most often used Assembler Operators. (I lost count
here, however, this sets a new standard in reducing barriers for new
comers to absolute minimum).
- Easy enough and powerful enough to create
a new assembler. Actually, NGASM 8086/8088 Assembler version
1.4 was assembled using the previous version, version
1.4 Beta 2, of itself !
- The INCLUDE
Directive (apart from the 5 abovesaid directives)
helps keep generic code in separate file/files and INCLUDE it/them
wherever necessary. An INCLUDEd file can INCLUDE many other source code
- Gets you started on Terminate
and Stay Resident (TSR) programs and Debugging
from Day One.
- Learning Assembly Language is now as easy
as learning to drive a car on a football ground (you have to run every
program inside DEBUG.EXE first until your coding gets better) .
Children can do it.
- Excellent for starters and those who have
to learn Assembly Language all by themselves.
- Excellent for those who gave up learning
Assembly Language in the past.
- You can save on an Assembly Language book
for the 8086/8088 microprocessor. It may be noted that code written for
the 8086/8088 microprocessors runs on even the latest x86 compatible
microprocessors like Athlon, Via, and Pentium family of microprocessors
and all other compatible microprocessors.
- You can write anything Ralf
Brown's Interrupt List makes you feel like writing. Toiling
with Ralf Brown's Interrupt List is a good thing.
The earlier, the better.
- You can learn to exploit the INT
3 Instruction to visually land straight on the code you want
to debug while inside the debugger (DEBUG.EXE - available in WINDOWS XP
- NGASM 8086/8088 Assembler
v1.4 assembles source code contained in one or more
files in a single pass.
- Creates the executable as a .COM file
which can be run from a DOS box in WINDOWS. Even if your program hangs,
you can terminate it from WINDOWS Task Manager which comes up when you
hit the Ctrl-Alt-Del key combination. No rebooting necessary.
- Unrestricted software. Your life changes
forever!. One never lives a fulfilled life without ever putting some
hex values straight into the CPU Registers by hand particularly when he
/ she owns a PC.
- Your last chance to learning to debug a C
program (.EXE) using any Assembler Debugger.
- Ihar Areshchankau of Belarus says "NGASM
8086/8088 Assembler v1.3 is a good addition to DEBUG.EXE on
anyone's Rescue Disk". Think about that.
NGASM 8086/8088 Assembler v1.3
8086/8088 Assembler v1.4 - includes a little refurbished Programmer's
added from NGASM 8086/8088 Assembler v1.4 Beta version
1. PUSHA, POPA instructions added. You cannot see these Instructions
when you debug using DEBUG.EXE.
are now possible.
Binary Numbers can be specified in Data Declaration and in Code.
Children can play with Binary Numbers. Like testing the AND, OR, and
XOR Instructions in the code below:
is available here
will be possible uses of the ALIGN Directive to speed up WORD / DWORD
accesses in a program when it runs.
2. Coding these additional types of PUSH's will be possible:
PUSH OFFSET SOMETHING
PUSH FIVE ;when FIVE EQU 5 is defined
3. These red tape directives will be ignored:
Link for Indians: One and only Indian 8086/8088 Assembler
Children can get straight away to coding. Theory is for the those who
do the University degrees and for those who need to develop their own
theory to fit their technology.
The 8086 Microprocessor is a true 16-bit processor. It has a 16-bit ALU
and a 16-bit data bus. This external data bus is the same width as the
ALU. The modern Pentiums fetch data 64 bits at a time for their 32-bit
The 8088 was the scaled down version of the 8086. That is why some
would list these processors as 8088/8086 instead of 8086/8088. The 8088
processor used the same internal core as the 8086, had the same 16-bit
registers, and could address the same 1 MB of memory, but the external
data bus was reduced to 8 bits. This allowed off-the-shelf support
chips for the older 8-bit 8085 to be used for the new 8088 too, and far
less expensive boards and systems to be made. It is for these reasons
that IBM chose the 8088, for the first PC.
The 8086 and 8088 both feature 29,000
transistors, 20 address pins (address lines), same internal
core, same Instruction Set, and same 16-bit registers. The
number of address pins determines how much memory a
microprocessor can access. Twenty address pins give these
microprocessors a total address space of one megabyte (2^20 =
The 8088 was fully software compatible with the 8086. The 8088 has a
16-bit ALU, but it has an 8-bit external data bus. This external data
bus is NOT the same width as the ALU. To repeat, IBM used the 8088
microprocessor for its first PC.
The 8086, 8088, 80186, and 80188 all contain 20 address lines (address
pins), giving these processors one megabyte of addressable (2^20 = 1
MB) main memory.
between the 8086 and the 8088 Microprocessors:
The 8086 and 8088 are binary compatible with each other, but not
pin-compatible. Binary compatibility means that either microprocessor
could execute the same programs. Pin-incompatibility means that you
canít plug the 8086 into the slot for 8088 and visa versa, and expect
the chips to work.
The 8086 and 8088 feature different data bus sizes. The data bus size
determines how many bytes of data the microprocessor can read in each
cycle. The 8086 features a 16-bit external data bus; the 8086's Bus
Interface Unit (BIU) is 16 bits wide, while the 8088 features an 8-bit
external data bus; the 8088's Bus Interface Unit (BIU) is 8 bits wide.
Another difference is that the 8088 instruction queue is four bytes
long instead of six as in 8086.
Clones of the
8088 and 8086:
The clones of the 8088 and 8086, viz, NEC (Nippon Electric Company's)
V20 and V30, can run all the code 8088 and 8086 can.
NEC was the first to "clone" the Intel 8088 and 8086 chips with their
V20 and V30 designs. The V20 was pin-compatible with the 8088, while
the V30 was pin-compatible with the 8086. The V-series ran 20% - 30%
faster than the Intel chips when running at the same clock speed. Even
though these V20 and V30 chips were pin-compatible with the 8088 and
8086, they also had some extensions to the architecture. They featured
all of the "new" instructions on the 80186 / 80188, and also were
capable of running in Z-80 mode (directly running programs written for
the Z-80 microprocessor).
How many address lines did the Z-80 microprocessor have? The Z-80 had
16 address lines (meaning a 16-bit address bus) and could address up to
(2^16) 64 Kbytes of memory. The Z-80 instruction code included all the
code from the 8080A but added some new ones to nearly double the number
of instructions. The disadvantage of the 8080A was it needed three
different power supplies.
The NEC V20 is a 16-bit microprocessor with 8-bit external data bus. It
is object-code and pin-compatible with Intel 8088. The V20 is faster
than the 8088, due to internal improvements - dual internal 16-bit data
bus, faster effective address calculation, better loop counter/shift
register implementation, and some others. The V20 includes Intel 8080
emulation mode, in which it can execute all of the 8080 instructions.
Native NEC V20 instruction set includes all 8086/8088 instructions, new
instructions from the 80186/80188 microprocessor, and instructions
unique to V20 - bit processing, packed BCD instructions and special
instructions for switching the processor to 8080 emulation mode and
The NEC V30 is almost the same as the NEC V20 with the exception that
the V30 has a 16-bit external data bus.
A quick review
of various microprocessors
The X86 instruction set was originally developed for the 8086 with its
mere 29000 transistors.
A few new instructions were introduced with the 80186
(referred to as the 8086-2 instruction set in some datasheets):
ENTER/LEAVE (replacing several instructions when handling stack frames)
PUSHA/POPA (push/pop all general registers)
BOUND (check array index against bounds)
INS/OUTS (input/output of string).
A useful immediate mode was added for the
and Multi-bit Shift instructions.
For example, a Multi-bit Shift instruction such as
SHR AX,3 is possible.
SHR AX,3 is acceptable code in DDEB.
You can type this instruction statement inside DDEB and it can be unassembled and seen in DDEB.
PUSH - machine code 68h - can now have a constant attached
with it like PUSH 1122H (Machine code 682211h - note the reversed bytes 2211h when you might expect 1122h ).
These instructions were included in the 80286 and successor
More instructions have been added within new generations of CPUs. The
80386 had 26 new instructions, the 486 added 6 and the Pentium another
8 new instructions.
In 1995 the Pentium processor was expanded with the so-called MMX
instructions. That was announced as a multimedia expansion with 57 new
All the modern P6 processors have 8 FP registers, each of which is 80 bits wide. So there is room inside the CPU itself for 8 numbers
each of 80 bits width or, for example, 16 numbers each of 32 bits width.
New instructions for more effective 3D performance. Instructions which
can be called by the programs, 3DNow! and SSE, are examples of this.
During the summer of 1998 AMD introduced a new collection of CPU
instructions, which improve the 3D execution.
21 new SIMD instructions were added.
SIMD instructions enable handling of more data portions with just one
3DNow! became a big success.
The instructions use the same registers, as do MMX and traditional FPU.
So they have to share them. Since the registers are 80 bits wide, they
can hold two 32-bit numbers simultaneously.
In principle Katmai (SSE - Intel's way to improve 3D execution in
Pentium III) is significantly more powerful than 3DNow! It has 8 new 128-bit registers each one of them can actually hold four 32-bit numbers at a time.
The full potential of Katmai is not reached within the actual Pentium
With the introduction of Pentium 4, the SIMD instruction set was
further improved with 144 new instructions.
In Pentium III the pipeline was of 10 stages. In Pentium 4 it has been
increased to 20 stages.
You are in the Serbo-Croatian region?: This article is translated to Serbo-Croatian language by WHG Team .