Обговорення:Адресне програмування
Найсвіжіший коментар: Sensei Sunsay у темі «Чому було додано один штрих у розділі «розіменування»?» 2 роки тому
Чому було додано один штрих у розділі «розіменування»?[ред. код]
@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