If this is a homework assignment, you really should try to answer it on your own first, otherwise the value of the reinforcement of the lesson due to actually doing the assignment will be lost on you.
Interrupt and subroutine return addresses are stored on the stack, so the stack segment is used for interupt and subroutine addresses.
stack segment
Yes, if a memory segment is 64K, it means there are 64K total addresses in that segment. Since 1K (kilobyte) equals 1024 bytes, a 64K segment would have a total size of 64 * 1024 bytes, which equals 65,536 bytes. Therefore, the size of one segment is 65,536 bytes.
The offset address in an 8086/8088 is the logical address that the program "thinks about" when it addresses a location in memory. The Execution Unit (EU or CPU) is responsible for generating the offset address. The Bus Interface Unit (BIU), on the other hand, takes the offset address and adds it to four times the selected segment register value in order to determine a real address, which is now 20-bits in length. Some programs do deal with segment addresses as well - these are called far pointers instead of near pointers - but the program has to do more than one step to load both the offset and the segment address - a complexity created by running in a 16-bit environment.
The starting and ending addresses of segment E000H is E0000H and EFFFFH.
In the 8086 microprocessor, an intra-segment jump refers to a jump instruction that occurs within the same segment of memory, allowing the program to branch to a different address within that segment. Conversely, an inter-segment jump involves jumping to a different segment, which requires specifying both the segment and offset addresses to access the target location. Intra-segment jumps are typically faster since they do not require segment register changes, while inter-segment jumps can introduce additional overhead due to the need for segment management.
In structured programming (a method of orderly setting up programs to increase readability of source code, and easier maintenance), segments of code to do specific things are often written...and then have a "return address" at the end of the code segment or subroutine to say where in the main coding the program should continue. In some languages, like BASIC, this may be a "line number" in the program. In other languages, such a C programming, it may be a label that has been inserted in the coding to be used as an 'address'. For example, a program like a sales program may have a subroutine asking the user's gender. Then the gender-asking subroutine may take the user to a listing of men's clothing if he answered male, or a different return address to take her to a list of female clothing if she answered female...and even an error routine's address if the user left the question blank or gave a non-gender answer.
In the 8086/8088, the logical address corresponds to a segment register, such as CS (Code Segment), DS (Data Segment), SS (Stack Segment) and ES (Extra Segment). The segment register is selected by context, or it is explicitly selected using a segment override prefix. The segment register is left shifted 4 bits into a 20-bit temporary register. This is the same as multiplying it by 16. Then the logical address is added to that result. The final result is the physical address.
The Physical address can be calculated asPhysical address = Base address + Offset.So take Base,Offsets,Lengths in to different arrays and check whether offset is less than length , if it is then the physical address would be base+ Offset , if not then that is a segment error.
That depends on the computer architecture. Usually, we treat RAM as a linear data structure, with all addresses in one linear address space. But on some architectures RAM is segmented, meaning addresses have both a segment and an address within a segment.
The last commercial break was longer than the final segment of the program! When I grabbed the lizard by the tail, all I got was a segment.
mujhe nahi aata
A) Segment: 0000: Range: 00000-0FFFF B) Segment: FFFF: Ranges: FFFF0-FFFFF and 00000-0FFEF