Thread: microprocessor

  1. #16
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Quote Originally Posted by brewbuck View Post
    I only mention this because I'm sure abachler will point it out if I don't
    Lol, in fact I was about to do so, as I was reading I was already planing out the rant

    When the 8088/8086 came out, Harvard was still a major contender in minicomputer markets. The 8088 supports a Harvard configuration directly by outputting on s3 and s4 (pins 37 and 38) the segment register used to generate the address. This can, in a Harvard configuration be used to extend the memory space to 4MB by addressing 4 separate memory banks. Typically in embedded designs I have built or worked on, CS will refer to the firmware, SS to fast RAM, DS to NVRAM, and ES is generally used for primitive memory mapped IO. This trick does not work with modern processors int eh 8088 family due to the way caches keep track of memory locations.
    Last edited by abachler; 09-13-2009 at 08:15 AM.
    Until you can build a working general purpose reprogrammable computer out of basic components from radio shack, you are not fit to call yourself a programmer in my presence. This is cwhizard, signing off.

  2. #17
    Registered User
    Join Date
    Sep 2008
    Toronto, Canada
    Quote Originally Posted by BEN10 View Post
    EDIT: My second question is why is their a need of segment registers in 8086, why not a full 20bit address rather than dividing the address in 4segments?
    Because all registers are still only 16 bits in size. They didn't want to change the entire architecture from previous model chips. 16 bit adders, comparators, etc. The highest priority for newer generation chips was to be able to use more memory. The number of address lines were increased by 4 making a total of 20. This enabled a 16x increase in memory capacity.

    Having 4 separate segment registers meant that areas of memory can be used for different things... One may be for 'stack', one for 'source', one for 'destination' of some data copying. One segment register was used to keep track of where the executable code is. But these uses are conceptual... The thing that made them worthwhile is that instructions implicitly accessed memory addresses calculated from the contents of certain segment registers depending on context. For example, a JMP instruction would reference the 'code' segment register. Whichever segment register was implied could be overridden with instruction prefixes if needed.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. assembly for M8 microprocessor series
    By GanglyLamb in forum Tech Board
    Replies: 3
    Last Post: 03-15-2006, 04:34 PM
  2. What's cooler than free boobs? 5 free assembly books from AMD.
    By Silvercord in forum A Brief History of
    Replies: 47
    Last Post: 02-13-2003, 07:22 PM
  3. Replies: 8
    Last Post: 01-30-2003, 03:29 PM
  4. a microprocessor thing!
    By badhri in forum C Programming
    Replies: 8
    Last Post: 05-29-2002, 10:58 AM
  5. Replies: 9
    Last Post: 03-13-2002, 09:46 AM