Обговорення:Адресне програмування

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Чому було додано один штрих у розділі «розіменування»?[ред. код]

@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