how exactly 20 bit physical address is generated in 8086 microprocessor?
i just want to know the basic concept :)
Two 16 bit values were used, the address and the segment. They were added, but with the segment offset and the lowest 4 bits not overlapping. However, there are several ways to get this result. This goes over them: https://courses.engr.illinois.edu/ece390/books/artofasm/CH04/CH04-2.html
oh okk now i get it so basically 20 bit address line has two parts (1)"segment part"-which is 16 bit [4 segment registor with 4 bit memory] and (2)"offset" so total 20 bit address={16*"segment"+"offset"} its clear now and thanks for the upload and explation :) @e.mccormick
I stole this from the wikipeda example for the math: \(\begin{array}{rccccccl} \text{segment}&&0110&1000&1000&0111&&\text{16 bits shifted 4 left}\\ \text{offset}&+&&0011&0100&1010&1001&\text{16 bits}\\ \hline \text{address}&=&0110&1011&1101&0001&1001&\text{20 bits} \end{array}\) The binary math makes things carry if they get more than 1 in it, and I did not want to figure all that out, so I just copied theirs. And yah, you seem to have gotten it. With the different ways listed in the assembler class, you basically get that sort of result. You just don't have to do all the math for each way of addressing it, but that is the foundation.
thanks again :)
Join our real-time social learning platform and learn together with your friends!