Assembly language........

retched

Joined Dec 5, 2009
5,207
It isnt capable of using more than 1mb.

That is one of the things the upgrades did. 8088 can use 32mb.
80286 can use 256mb

It is about choosing the chip to use that meets the demands of your project.

If you need 2mb of memory, then 8086 is not the chip for you.
 

Thread Starter

RRITESH KAKKAR

Joined Jun 29, 2010
2,829
Hi,
my question is in 8086 microprocessor 20 bits add. lines can add. 1mB of memory. There are 4 segments which is of 64KB of each i.e. 256kb total but what about the rest of memory where it is used??
 

t06afre

Joined May 11, 2009
5,934
Sigh!
In the original 8086 registers are only 16-bits wide, and two registers are needed to produce a 20-bit memory address.
—A segment register specifies the upper 16 bits of the address.
—Another register specifies the lower 16 bits of the address.
These registers are then added together in a special way.

A single 20-bit address can be specified in multiple ways! For instance, 0000:0040 is the same as 0004:0000 (in hexadecimal notation).
Segments come into play in many situations.
—The program counter is a 20-bit value CS:IP (the instruction pointer, within the code segment).
—The stack pointer is really SS:SP.
 

t06afre

Joined May 11, 2009
5,934
That would be some variant of the mov assembly language mnemonics. It is all in the instruction set. It will be something like this
Rich (BB code):
 Mov Dest, Source
Look in the instrcution set. Those who seek will find:rolleyes:
 

Thread Starter

RRITESH KAKKAR

Joined Jun 29, 2010
2,829
In this program add. of two 16 bit no. in 8 bit acc. 8085, it is written in course book, but when i wrote in Oshon as. i don't the answer were it is in memory as add. given in instruction were checked??

.ORG 2000
DATA1 .DB 4BH
DATA2 .DB 5AH
DATA3 .DB 45H
DATA4 .DB 24H

MVI B,00
LHLD 2000
XCHG
LHLD 2002
DAD
JNC 07E1H
INR B
SHLD 2004
MOV A,B
STA 2006
HLT
 
Last edited:

t06afre

Joined May 11, 2009
5,934
I am only guessing here. STA 2006 sore the result in memory cell 2006 (decimal) but the Oshon software probably show the memory in hexadecimal notation So it will be on address 0x7d6 in hexadecimal format
 

DumboFixer

Joined Feb 10, 2009
217
jmp is an unconidtional jump - it will always jump.
jnz is a conditional jump. If the "zero" flag in the status register is set (indication a zero condition result from the last operation) then no jump is performed. If the result wasn't zero a jmp will be performed.

the jnz is often used in loop control.
 

Thread Starter

RRITESH KAKKAR

Joined Jun 29, 2010
2,829
jnz is a conditional jump. If the "zero" flag in the status register is set (indication a zero condition result from the last operation) then no jump is performed. If the result wasn't zero a jmp will be performed.
Zero flag mean zero answer??
 
Top