Обговорення:Адресне програмування
Ця стаття є частиною Проєкту:Комп'ютерні науки (рівень: 4, важливість: висока) | ||
---|---|---|
![]() | інформатикою і комп'ютерними науками. Ви можете покращити цю статтю, відредагувавши її, а на сторінці проєкту вказано, чим ще можна допомогти. Учасники проєкту будуть вам вдячні. | Мета проєкту — створення якісних та інформативних статей на теми, пов'язані з|
IV (заготовка) | Ця стаття за шкалою оцінок статей Проєкту:Комп'ютерні науки має рівень «заготовка, стаття-стаб». | |
Висока | Важливість цієї статті для проєкту Комп'ютерні науки: «висока» | |
Чим допомогти: |
Чому було додано один штрих у розділі «розіменування»?
[ред. код]@Sensei Sunsay: Доброго дня! Розкажіть, будь-ласка, чому ви додали ще один штрих до операцій у розділі «Розіменування вказівника („виділення вмісту адреси“)»?
Яким тоді операторам у сучасних мовах програмування відповідає адресна «операція з одним штрихом»?
Дякую заздалегідь! --Yuriz (обговорення) 12:31, 19 грудня 2021 (UTC)
- Вітаю!
- У сучасних мовах програмування змінна, яка записана (наприклад у виразі праворуч від оператора присвоєння) розуміється не у якості адреси, а туди, у те місце, підставляється її значення, тобто: береться значення змінної.
- "штрих-операція" це є отримати значення. Це адресація 1-ого рангу.
- 'х => y - в Адресный мові (адресація 1-ого рангу).
- те саме:
- y := x; - в "сучасній"мові (адресація 1-ого рангу).
- Адресація 1-ого рангу це: просто запис змінної.
- Тобто, якщо бажаємо мати значення, а не адресу (у Адресній мові змінна = це її адреса), то маємо записати "без штриха".
- Ще приклад:
- х => y - в Адресный мові (адресація 0-ого рангу або нема адресації береться те, що записано: константа чи адреса, яка позначена змінною).
- те саме:
- y := @x; - у Паскалі (@x - це адреса змінної x).
- Сподіваюсь, що питання знято, чи не так? --Sensei Sunsay (обговорення) 14:53, 19 грудня 2021 (UTC)
- х := a + b;
- в Адресній записуємо:
- 'a + 'b => x --Sensei Sunsay (обговорення) 14:56, 19 грудня 2021 (UTC)
- Зрозуміло. Значить, як у NASM (звісно, там можливе розіменування вказівника лише першого рангу):
section .data var: DD 0 section .text push var ; запхнути до стеку var (мітку, адресу). У MASM це вимагає слова offset push dword [var] ; запхнути до стеку значення змінної. У MASM вимагає ptr після dword