Редактирование: ++@
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 2: | Строка 2: | ||
++@ ( a −− x ) Косвенное чтение по указателю в a с предварительным автоувеличением | ++@ ( a −− x ) Косвенное чтение по указателю в a с предварительным автоувеличением | ||
(аналог КИП4..КИП6). | (аналог КИП4..КИП6). | ||
Обозначим буквой p переменную, [[Единое адресное пространство|адрес]] которой лежит на [[Стек данных|стеке]] и равен a. Это может быть настоящая переменная, созданная словом [[VARIABLE]] или [[FVARIABLE]]. Такие переменные называются | Обозначим буквой p переменную, [[Единое адресное пространство|адрес]] которой лежит на [[Стек данных|стеке]] и равен a. Это может быть настоящая переменная, созданная словом [[VARIABLE]] или [[FVARIABLE]]. Такие переменные называются указателями, т.к. их содержимое указывает на [[Единое адресное пространство|адрес]] памяти, к которому будет производиться обращение. | ||
Слово ++@ сперва увеличивает p на единицу, отбросив дробную часть. Потом считывает адресную единицу ([[десятичное число]] или байт), расположенный по (новому) [[Единое адресное пространство|адресу]], находящемуся в обновившейся переменной p. | Слово ++@ сперва увеличивает p на единицу, отбросив дробную часть. Потом считывает адресную единицу ([[десятичное число]] или байт), расположенный по (новому) [[Единое адресное пространство|адресу]], находящемуся в обновившейся переменной p. | ||
Строка 13: | Строка 13: | ||
В отличии от команд КИП4…КИП6 слово ++@ позволяет организовать [[Косвенная адресация|косвенную адресацию]] с прединкрементом по любому [[Регистр десятичных данных|десятичному регистру]] (см. слово [[FVARIABLE]]) или двум последовательным [[Регистры байтовых данных|байтовым регистрам]] (см. слово [[VARIABLE]]). | В отличии от команд КИП4…КИП6 слово ++@ позволяет организовать [[Косвенная адресация|косвенную адресацию]] с прединкрементом по любому [[Регистр десятичных данных|десятичному регистру]] (см. слово [[FVARIABLE]]) или двум последовательным [[Регистры байтовых данных|байтовым регистрам]] (см. слово [[VARIABLE]]). | ||
== Ссылки == | == Ссылки == | ||
* {{Исходник|PlusPlusFetch|++@}} | * {{Исходник|PlusPlusFetch|++@}} | ||
* См. слова [[++!]], [[−−! | * См. слова [[++!]], [[−−!]], [[+!]] и [[Слово !|!]] | ||
* [https://ru.wikipedia.org/wiki/Инкремент Инкремент в Википедии] | * [https://ru.wikipedia.org/wiki/Инкремент Инкремент в Википедии] | ||