Segments and crossings
Hello. Please explain and correct me if it's wrong. What's a segment? I understand it's just a contingent area of operational memory that has been given to certain needs. Got a few questions.
1. How is the area chosen selected for the location of a segment in memory, allowed , segment of the code, data?
2. What size of the segment and how it's chosen.
3. What's the transition? Long and close?
4. Why is it possible to make a jamp only on -127 or +128 battles?
5. Is there a long or nearer transition when the procedures are called? If the procedure is located in the code segment, what is the limit of size?
6. If a picture of the segments can be remembranced and how are the transitions?
Thank you very much.
1.2 - I don't know how, but their location in the final file is chosen by the lens. Depends on many factors: the format of the completed file (elf, PE32), the target environment, etc.
Transition is a transition. So, you're literally pointing to the processor that you need to make a transition to that address in memory, by condition (the contents of the EAX register are less than one), or without one. Well, the long transition is, as far as I can remember, from x86 terminology, it's a transition that allows a jump to a more remote location from the address transfer team.
Not all the jamps can be made for such short ranges. It's wider. Example of that far-reaching transition. It depends on the code of instruction. How many battles are assigned to the field of the address/smart for the transition. If 8, yes, the mark is bigger than -127+128, it's unlikely to be possible to ask.
What's the problem with inter-segment transition? Different segments may be scattered in different memory pages (in a strange memory model), with different access rights. If this segment where the constants are stored, it certainly doesn't make sense for him to have the right to record.