Data segment
ಗಣನೆಯಲ್ಲಿ, ದತ್ತಾಂಶ ವಿಭಾಗವು (ಸಾಮಾನ್ಯವಾಗಿ. ಡೇಟಾ ಎಂದು ಸೂಚಿಸಲಾಗುತ್ತದೆ) ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್ನ ಒಂದು ಭಾಗ ಅಥವಾ ಪ್ರೋಗ್ರಾಂನ ಅನುಗುಣವಾದ ವಿಳಾಸ ಸ್ಥಳವಾಗಿದ್ದು ಅದು ಆರಂಭಿಕ ಸ್ಥಿರ ಅಸ್ಥಿರಗಳನ್ನು, ಅಂದರೆ ಜಾಗತಿಕ ಅಸ್ಥಿರಗಳು ಮತ್ತು ಸ್ಥಿರ ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಈ ವಿಭಾಗದ ಗಾತ್ರವನ್ನು ಪ್ರೋಗ್ರಾಂನ ಮೂಲ ಕೋಡ್ನಲ್ಲಿನ ಮೌಲ್ಯಗಳ ಗಾತ್ರದಿಂದ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ರನ್ ಸಮಯದಲ್ಲಿ ಬದಲಾಗುವುದಿಲ್ಲ. ಡೇಟಾ ವಿಭಾಗವನ್ನು ಓದಲಾಗುತ್ತದೆ/ಬರೆಯಲಾಗುತ್ತದೆ, ಏಕೆಂದರೆ ಚಲಿಸುವ ಸಮಯದಲ್ಲಿ ಅಸ್ಥಿರಗಳ ಮೌಲ್ಯಗಳನ್ನು ಬದಲಾಯಿಸಬಹುದು. ಇದು ಓದಲು-ಮಾತ್ರ ದತ್ತಾಂಶ ವಿಭಾಗಕ್ಕೆ (ವಿಭಾಗ ಅಥವಾ. ರೊಡಾಟಾ) ವ್ಯತಿರಿಕ್ತವಾಗಿದೆ, ಇದು ಅಸ್ಥಿರಗಳ ಬದಲಿಗೆ ಸ್ಥಿರ ಸ್ಥಿರಾಂಕಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ; ಇದು ಪಠ್ಯ ವಿಭಾಗ ಎಂದೂ ಕರೆಯಲ್ಪಡುವ ಕೋಡ್ ವಿಭಾಗಕ್ಕೆ ವ್ಯತಿರಿಕ್ತವಾಗಿದೆ, ಇದು ಅನೇಕ ವಿನ್ಯಾಸಗಳಲ್ಲಿ ಓದಲು-ಮಾತ್ರವಾಗಿದೆ. ಅಸ್ಥಿರಗಳು ಮತ್ತು ಸ್ಥಿರಾಂಕಗಳೆರಡೂ ಪ್ರಾರಂಭಿಸದ ದತ್ತಾಂಶವು ಬದಲಿಗೆ ಬಿ. ಎಸ್. ಎಸ್ ವಿಭಾಗದಲ್ಲಿದೆ. ಐತಿಹಾಸಿಕವಾಗಿ, ಆಂತರಿಕ ವಿಳಾಸ ನೋಂದಣಿಯ ಸ್ಥಳೀಯ ಗಾತ್ರಕ್ಕಿಂತ ದೊಡ್ಡದಾದ ಮೆಮೊರಿ ವಿಳಾಸ ಸ್ಥಳಗಳನ್ನು ಬೆಂಬಲಿಸಲು ಸಾಧ್ಯವಾಗುವಂತೆ, ಆರಂಭಿಕ ಸಿಪಿಯುಗಳು ವಿಭಜನೆಯ ವ್ಯವಸ್ಥೆಯನ್ನು ಜಾರಿಗೆ ತಂದವು, ಆ ಮೂಲಕ ಅವು ಕೆಲವು ಪ್ರದೇಶಗಳಿಗೆ ಆಫ್ಸೆಟ್ಗಳಾಗಿ ಬಳಸಲು ಸಣ್ಣ ಪ್ರಮಾಣದ ಸೂಚ್ಯಂಕಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತವೆ. ಇಂಟೆಲ್ 8086 ಸಿಪಿಯುಗಳ ಕುಟುಂಬವು ನಾಲ್ಕು ವಿಭಾಗಗಳನ್ನು ಒದಗಿಸಿದೆಃ ಕೋಡ್ ವಿಭಾಗ, ದತ್ತಾಂಶ ವಿಭಾಗ, ಸ್ಟ್ಯಾಕ್ ವಿಭಾಗ ಮತ್ತು ಹೆಚ್ಚುವರಿ ವಿಭಾಗ. ಸಾಫ್ಟ್ವೇರ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮೂಲಕ ಪ್ರತಿಯೊಂದು ವಿಭಾಗವನ್ನು ಮೆಮೊರಿಯ ನಿರ್ದಿಷ್ಟ ಸ್ಥಳದಲ್ಲಿ ಇರಿಸಲಾಗಿದೆ ಮತ್ತು ಆ ವಿಭಾಗಗಳೊಳಗಿನ ಡೇಟಾದ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಎಲ್ಲಾ ಸೂಚನೆಗಳನ್ನು ಆ ವಿಭಾಗದ ಪ್ರಾರಂಭಕ್ಕೆ ಸಂಬಂಧಿಸಿದಂತೆ ನಿರ್ವಹಿಸಲಾಗಿದೆ. ಇದು 16-ಬಿಟ್ ಅಡ್ರೆಸ್ ರಿಜಿಸ್ಟರ್ಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಟ್ಟಿತು, ಇದು ಸಾಮಾನ್ಯವಾಗಿ 64 ಕೆಬಿ ಮೆಮೊರಿ ಜಾಗವನ್ನು ಪ್ರವೇಶಿಸಲು, 1 ಎಂಬಿ ಮೆಮೊರಿ ಜಾಗವನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿತ್ತು. ಮೆಮೊರಿ ಜಾಗವನ್ನು ಪ್ರತ್ಯೇಕ ಬ್ಲಾಕ್ಗಳಾಗಿ ವಿಂಗಡಿಸುವುದರಿಂದ ನಿರ್ದಿಷ್ಟ ಕಾರ್ಯಗಳನ್ನು ಆ ದಿನದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಿಗೆ ವರ್ಗಾಯಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಈ ಪರಿಕಲ್ಪನೆಯು ಆಧುನಿಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಇನ್ನೂ ವ್ಯಾಪಕವಾಗಿ ಬಳಕೆಯಲ್ಲಿದೆ. ಪ್ರೋಗ್ರಾಂ ಮೆಮೊರಿಯನ್ನು ಕಂಪ್ಯೂಟರ್ ಪ್ರೋಗ್ರಾಂ ಮೆಮೊರಿಯನ್ನು ಹೆಚ್ಚಾಗಿ ಎರಡು ವಿಭಾಗಗಳಾಗಿ ವಿಂಗಡಿಸಬಹುದುಃ ಓದಲು-ಮಾತ್ರ ಮತ್ತು ಓದಲು/ಬರೆಯಲು. ಮಾಸ್ಕ್ ರಾಮ್, ಇ. ಪಿ. ಆರ್. ಓ. ಎಂ., ಪಿ. ಆರ್. ಓ. ಎಂ. ಅಥವಾ ಇ. ಇ. ಪಿ. ಆರ್. ಓ. ಎಂ. ನಂತಹ ಓದಲು-ಮಾತ್ರ ಮೆಮೊರಿಯಲ್ಲಿ ತಮ್ಮ ಮುಖ್ಯ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಹೊಂದಿರುವ ಆರಂಭಿಕ ವ್ಯವಸ್ಥೆಗಳಿಂದ ಈ ವ್ಯತ್ಯಾಸವು ಬೆಳೆಯಿತು. ವ್ಯವಸ್ಥೆಗಳು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದಂತೆ ಮತ್ತು ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ರಾಮ್ನಿಂದ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಬದಲು ಇತರ ಮಾಧ್ಯಮಗಳಿಂದ ರಾಮ್ಗೆ ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದ್ದಂತೆ, ಪ್ರೋಗ್ರಾಂನ ಮೆಮೊರಿಯ ಕೆಲವು ಭಾಗಗಳನ್ನು ಮಾರ್ಪಡಿಸಬಾರದು ಎಂಬ ಕಲ್ಪನೆಯನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲಾಯಿತು. ಇವುಗಳು ಕಾರ್ಯಕ್ರಮದ. ಟೆಕ್ಸ್ಟ್ ಮತ್ತು. ರೊಡಾಟಾ ವಿಭಾಗಗಳಾಗಿ ಮಾರ್ಪಟ್ಟವು ಮತ್ತು ಉಳಿದವುಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ಕಾರ್ಯಗಳಿಗಾಗಿ ಹಲವಾರು ಇತರ ವಿಭಾಗಗಳಾಗಿ ವಿಂಗಡಿಸಬಹುದು. ಕೋಡ್ ಪಠ್ಯ ವಿಭಾಗ ಎಂದೂ ಕರೆಯಲ್ಪಡುವ ಕೋಡ್ ವಿಭಾಗವು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿರುತ್ತದೆ ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಓದಲು-ಮಾತ್ರ ಮತ್ತು ಸ್ಥಿರ ಗಾತ್ರವನ್ನು ಹೊಂದಿರುತ್ತದೆ. ದತ್ತಾಂಶ ವಿಭಾಗವು ಆರಂಭಿಕ ಸ್ಥಿರ ಅಸ್ಥಿರಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ, ಅಂದರೆ. ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿರುವ ಮತ್ತು ಮಾರ್ಪಡಿಸಬಹುದಾದ ಜಾಗತಿಕ ಅಸ್ಥಿರಗಳು ಮತ್ತು ಸ್ಥಳೀಯ ಸ್ಥಿರ ಅಸ್ಥಿರಗಳು. Cಯಲ್ಲಿನ ಉದಾಹರಣೆಗಳಲ್ಲಿ ಇವು ಸೇರಿವೆಃ ಇಂಟ i = 3; ಚಾರ a [] = "ಹಲೋ ವರ್ಲ್ಡ್"; ಸ್ಟ್ಯಾಟಿಕ್ ಇಂಟ b = 2023;// ಇನಿಶಿಯಲೈಸ್ಡ್ ಸ್ಟ್ಯಾಟಿಕ್ ಗ್ಲೋಬಲ್ ವೇರಿಯೇಬಲ್ ವಾಯ್ಡ್ ಫೂ (ವಾಯ್ಡ್) {ಸ್ಟ್ಯಾಟಿಕ್ ಇಂಟ c = 2023;// ಇನಿಶಿಯಲೈಸ್ಡ್ ಸ್ಟ್ಯಾಟಿಕ್ ಲೋಕಲ್ ವೇರಿಯೇಬಲ್} BSS. ಜಾಗತಿಕ ಅಸ್ಥಿರಗಳು ಮತ್ತು ಸ್ಥಳೀಯ ಸ್ಥಿರ ಅಸ್ಥಿರಗಳನ್ನು ಶೂನ್ಯಕ್ಕೆ ಪ್ರಾರಂಭಿಸಲಾಗಿರುತ್ತದೆ ಅಥವಾ ಮೂಲ ಸಂಕೇತದಲ್ಲಿ ಸ್ಪಷ್ಟವಾದ ಆರಂಭೀಕರಣವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ. ಸಿ ನಲ್ಲಿನ ಉದಾಹರಣೆಗಳಲ್ಲಿ ಇವು ಸೇರಿವೆಃ ಸ್ಥಿರ ಇಂಟ್ ಐ; ಸ್ಥಿರ ಚಾರ್ ಎ [12]; ಹೀಪ್ ಹೀಪ್ ವಿಭಾಗವು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ನಿಗದಿಪಡಿಸಿದ ಮೆಮೊರಿಯನ್ನು ಹೊಂದಿರುತ್ತದೆ, ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಬಿಎಸ್ಎಸ್ ವಿಭಾಗದ ಕೊನೆಯಲ್ಲಿ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಅಲ್ಲಿಂದ ದೊಡ್ಡ ವಿಳಾಸಗಳಿಗೆ ಬೆಳೆಯುತ್ತದೆ. ಇದನ್ನು ಮ್ಯಾಲೋಕ್, ಕ್ಯಾಲೋಕ್, ರಿಯಾಲೋಕ್ ಮತ್ತು ಫ್ರೀ ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ, ಇದು ಅದರ ಗಾತ್ರವನ್ನು ಸರಿಹೊಂದಿಸಲು ಬಿ. ಆರ್. ಕೆ ಮತ್ತು ಎಸ್. ಬಿ. ಆರ್. ಕೆ ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಬಳಸಬಹುದು (ಮ್ಯಾಲೋಕ್/ಕ್ಯಾಲೋಕ್/ರಿಯಾಲೋಕ್/ಫ್ರೀ ಒಪ್ಪಂದವನ್ನು ಪೂರೈಸಲು ಬಿ. ಆರ್. ಕೆ/ಎಸ್. ಬಿ. ಆರ್. ಕೆ ಮತ್ತು ಒಂದೇ ರಾಶಿ ವಿಭಾಗದ ಬಳಕೆಯ ಅಗತ್ಯವಿಲ್ಲ ಎಂಬುದನ್ನು ಗಮನಿಸಿ; ಅವುಗಳನ್ನು ಎಂ. ಎಂ. ಎ. ಪಿ/ಮುನ್ಮ್ಯಾಪ್ ಬಳಸಿ ವರ್ಚುವಲ್ ಮೆಮೊರಿಯ ಸಂಭಾವ್ಯವಾಗಿ ಸಮೀಪದಲ್ಲದ ಪ್ರದೇಶಗಳನ್ನು 'ವರ್ಚುವಲ್ ಅಡ್ರೆಸ್ ಸ್ಪೇಸ್' ಪ್ರಕ್ರಿಯೆಗೆ ಕಾಯ್ದಿರಿಸಲು/ಕಾಯ್ದಿರಿಸಲು ಸಹ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು). ರಾಶಿ ವಿಭಾಗವನ್ನು ಎಲ್ಲಾ ಎಳೆಗಳು, ಹಂಚಿದ ಗ್ರಂಥಾಲಯಗಳು ಮತ್ತು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಲೋಡ್ ಮಾಡಲಾದ ಮಾಡ್ಯೂಲ್ಗಳು ಒಂದು ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ. ಸ್ಟ್ಯಾಕ್ ವಿಭಾಗವು ಕರೆ ಸ್ಟ್ಯಾಕ್ ಅನ್ನು ಹೊಂದಿರುತ್ತದೆ, ಇದು LIFO ರಚನೆಯಾಗಿದ್ದು, ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಮೆಮೊರಿಯ ಮೇಲಿನ ಭಾಗಗಳಲ್ಲಿದೆ. "ಸ್ಟ್ಯಾಕ್ ಪಾಯಿಂಟರ್" ರಿಜಿಸ್ಟರ್ ಸ್ಟ್ಯಾಕ್ನ ಮೇಲ್ಭಾಗವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುತ್ತದೆ; ಪ್ರತಿ ಬಾರಿ ಸ್ಟ್ಯಾಕ್ಗೆ ಮೌಲ್ಯವನ್ನು "ತಳ್ಳಿದಾಗ" ಅದನ್ನು ಸರಿಹೊಂದಿಸಲಾಗುತ್ತದೆ. ಒಂದು ಫಂಕ್ಷನ್ ಕರೆಗಾಗಿ ತಳ್ಳಲಾದ ಮೌಲ್ಯಗಳ ಗುಂಪನ್ನು "ಸ್ಟ್ಯಾಕ್ ಫ್ರೇಮ್" ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಸ್ಟ್ಯಾಕ್ ಫ್ರೇಮ್ ಕನಿಷ್ಠ ರಿಟರ್ನ್ ವಿಳಾಸವನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಸ್ವಯಂಚಾಲಿತ ವೇರಿಯೇಬಲ್ಗಳನ್ನು ಸಹ ಸ್ಟಾಕ್ನಲ್ಲಿ ಹಂಚಲಾಗುತ್ತದೆ. ಸ್ಟ್ಯಾಕ್ ವಿಭಾಗವು ಸಾಂಪ್ರದಾಯಿಕವಾಗಿ ಹೀಪ್ ವಿಭಾಗಕ್ಕೆ ಹೊಂದಿಕೊಂಡಿತ್ತು ಮತ್ತು ಅವು ಪರಸ್ಪರರ ಕಡೆಗೆ ಬೆಳೆದವು; ಸ್ಟ್ಯಾಕ್ ಪಾಯಿಂಟರ್ ಹೀಪ್ ಪಾಯಿಂಟರ್ ಅನ್ನು ಭೇಟಿಯಾದಾಗ, ಫ್ರೀ ಮೆಮೊರಿ ಖಾಲಿಯಾಯಿತು. ದೊಡ್ಡ ವಿಳಾಸ ಸ್ಥಳಗಳು ಮತ್ತು ವರ್ಚುವಲ್ ಮೆಮೊರಿ ತಂತ್ರಗಳೊಂದಿಗೆ ಅವುಗಳನ್ನು ಹೆಚ್ಚು ಮುಕ್ತವಾಗಿ ಇರಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಅವು ಇನ್ನೂ ಸಾಮಾನ್ಯವಾಗಿ ಒಮ್ಮುಖ ದಿಕ್ಕಿನಲ್ಲಿ ಬೆಳೆಯುತ್ತವೆ. ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಪಿಸಿ x86 ವಾಸ್ತುಶಿಲ್ಪದಲ್ಲಿ ಸ್ಟ್ಯಾಕ್ ವಿಳಾಸ ಶೂನ್ಯದ ಕಡೆಗೆ ಬೆಳೆಯುತ್ತದೆ, ಅಂದರೆ ಕರೆ ಸರಪಳಿಯಲ್ಲಿ ಆಳವಾದ ಇತ್ತೀಚಿನ ವಸ್ತುಗಳು ಸಂಖ್ಯಾತ್ಮಕವಾಗಿ ಕಡಿಮೆ ವಿಳಾಸಗಳಲ್ಲಿರುತ್ತವೆ ಮತ್ತು ರಾಶಿಗೆ ಹತ್ತಿರದಲ್ಲಿರುತ್ತವೆ. ಇತರ ಕೆಲವು ವಾಸ್ತುಶಿಲ್ಪಗಳಲ್ಲಿ ಇದು ವಿರುದ್ಧ ದಿಕ್ಕಿನಲ್ಲಿ ಬೆಳೆಯುತ್ತದೆ. ಕೆಲವು ವ್ಯಾಖ್ಯಾನಿತ ಭಾಷೆಗಳು ದತ್ತಾಂಶ ವಿಭಾಗಕ್ಕೆ ಹೋಲುವ ಸೌಲಭ್ಯವನ್ನು ನೀಡುತ್ತವೆ, ಮುಖ್ಯವಾಗಿ ಪರ್ಲ್ ಮತ್ತು ರೂಬಿ. ಈ ಭಾಷೆಗಳಲ್ಲಿ, ಸಾಲು (ಪರ್ಲ್) ಅಥವಾ (ರೂಬಿ, ಹಳೆಯ ಪರ್ಲ್) ಕೋಡ್ ವಿಭಾಗದ ಅಂತ್ಯ ಮತ್ತು ಡೇಟಾ ವಿಭಾಗದ ಆರಂಭವನ್ನು ಗುರುತಿಸುತ್ತದೆ. ಈ ಸಾಲಿಗೆ ಮುಂಚಿನ ವಿಷಯಗಳನ್ನು ಮಾತ್ರ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಈ ಸಾಲಿನ ನಂತರದ ಮೂಲ ಕಡತದ ವಿಷಯಗಳು ಕಡತದ ವಸ್ತುವಾಗಿ ಲಭ್ಯವಿರುತ್ತವೆಃ ಪ್ಯಾಕೇಜ್ಃಃ ಡೇಟಾ ಪರ್ಲ್ನಲ್ಲಿ (ಉದಾಹರಣೆಗೆ, ಮುಖ್ಯಃಃ ಡೇಟಾ) ಮತ್ತು ಡೇಟಾ ರೂಬಿಯಲ್ಲಿ. ಇದನ್ನು ಇಲ್ಲಿ ದಾಖಲೆಯ ಒಂದು ರೂಪವೆಂದು ಪರಿಗಣಿಸಬಹುದು (ಅಕ್ಷರಶಃ ಕಡತ). ಸೆಗ್ಮೆಂಟೇಶನ್ (ಮೆಮೊರಿ) ಸೆಗ್ಮೆಂಟೇಶನ್ ಫಾಲ್ಟ್ ಲಿಂಕರ್ (ಕಂಪ್ಯೂಟಿಂಗ್) ಕೋಡ್ ಸೆಗ್ಮೆಂಟ್. ಬಿ. ಎಸ್. ಎಸ್. ಯುನಿನಿಷಿಯಲೈಸ್ಡ್ ವೇರಿಯೇಬಲ್ ಸ್ಟ್ಯಾಕ್ (ಅಬ್ಸ್ಟ್ರ್ಯಾಕ್ಟ್ ಡೇಟಾ ಟೈಪ್) ಪ್ರೊಸೆಸ್ ಕಂಟ್ರೋಲ್ ಬ್ಲಾಕ್ ಉಲ್ಲೇಖಗಳು ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಎಕ್ಸಿಕ್ಯೂಟಬಲ್ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್ಗಳು ಮೆಮೊರಿ ಮ್ಯಾನೇಜ್ಮೆಂಟ್