0

in intel 8086 , given a physical adress how to find the possible sets of segment : offset for example : 5F173 = (5F17,3) = (578D,78A3)

when the first is easy to find but what about the second ? and is the offset always represented in 16 bits because i've found this two examples : 5F173 = (5F17,3) and (578DE,0E) and i'm confused about the bits representing each offset : 8 for the first and 16 for the second (?)

rayyya
  • 7
  • 1
  • As segment is 65536 bytes and paragraph is 16 bytes, you have 65536/16=4096 variants. – dimich Apr 06 '23 at 01:24
  • 1
    `0003h` fits in 16 bits. Writing it as `3` doesn't change that. But `(578DE,0E)` is nonsense; that's showing a 5-hex-digit (20-bit) segment, and `(seg<<4) + off` would give the low digit (nibble) of the linear address as `Eh` not `3`. Anyway, there isn't one unique way to break down a 20-bit linear address into logical (seg:off) with two 16-bit components; there are I think 2^12 different ways for each address, except at the very edges of address space (the bottom and top). Common choices are to put 16 bits in one and 4 bits in the other. – Peter Cordes Apr 06 '23 at 01:30
  • @PeterCordes sorry i meant 578DE = (578D,0E) – rayyya Apr 06 '23 at 01:48

0 Answers0