Size: a a a

Ассемблер

2021 September 06

E

Entusiast in Ассемблер
Во! Новые термины выдуманные, а где ты это нашёл-то? Я же выше скидывал все возможные  найденные термины адресной арифметики со всех источников - нигде про тип данных))
источник

II

Ira Irina in Ассемблер
Это потому что они не могут точно сформулировать)). Из этой дискуссии у меня  родилась формулировка
источник

E

Entusiast in Ассемблер
Ну опубликуешь куда-то, или когда потвердят твой новый термин адресной арифметики - тогда соглашусь
А пока что я вижу, что адресная арифметика это арифметика над указателями, и всё сходится, значит - верю
источник

II

Ira Irina in Ассемблер
арифметические операции определены допустим над float. Значит это арифметика над float. Если они определены над типом "адрес", значит это адресная арифметика.
источник

ДЦ

Дмитро Цимбалюк... in Ассемблер
стоп, будет же 1
источник

II

Ira Irina in Ассемблер
А я согласен, что адресная арифметика - это арифметика над указателями. Причем над указателями как над типом данных, а не просто значениями как в асме.
источник

E

Entusiast in Ассемблер
Исправил, совсем уже голова болит от этих выдуманных терминов
источник

E

Entusiast in Ассемблер
Никаких тут "причём"!
И вообще, указатель он везде указатель, и ещё раз повторяюсь - аж с 1955 (а указатели есть и в ассемблере)

Это просто обычное упрощение от Си-компилятора, что он там подставляет sizeof(int), и никак не относится это к адресной арифметике в целом

И вообще - указателю не обязательно быть типом данных ЯВУ
Указатель — не только переменная. Указатель в программировании на ассемблере — адрес определённой ячейки памяти. Жёсткой привязки к понятию «переменной» нет
источник

II

Ira Irina in Ассемблер
Хорошо, пусть так, но все равно чтобы сказать что в языке есть адресная арифметика он должен сам знать сколько прибавлять к адресу. Если он этого не знает, значит в нем адресной арифметики нет, и ты сам ее реализуешь с помощью универсальной арифметики
источник

II

Ira Irina in Ассемблер
Даже если вся реализация состоит из одного умножения на 4))
источник

ДЦ

Дмитро Цимбалюк... in Ассемблер
так почему адресная арифметика это только с типами?
источник

E

Entusiast in Ассемблер
Ну никак вообще не сходится это

Вот когда будет висеть понятие в одном официальном источнике, или в большинстве источников - что "Адресная арифметика - когда компилятор сам подставляет размер типа данных указателя в арифметике с указателями" - тогда поверю. Но нет такого термина, нет его! Ничего он там не обязан подставлять, адресная арифметика это просто "вычисление\сравнение с указателями" и даже про "указатель" как тип данных ничего не сказано, просто "указатель" - адрес ячейки памяти
источник

II

Ira Irina in Ассемблер
Потому что без типа компилятор вообще не знает, что значение с которым работает это адрес.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
[array+ecx*4]    ;..1,2,4,8
источник

II

Ira Irina in Ассемблер
Он тупо поймет прибавить единицу буквально и не умножит на четыре, потому что понятия не имеет что это адрес
источник

E

Entusiast in Ассемблер
Ну человек сам напишет. Основная задача какая? Вычислить адрес другой ячейки памяти, относительно уже имеющегося указателя. Так что мешает сделать самому +4, +1, +8? Это ли не адресная арифметика?
источник

II

Ira Irina in Ассемблер
Человек сам напишет, об этом и речь.
источник

E

Entusiast in Ассемблер
И снова повторяюсь, что не сходится вообще "адресная арифметика == подстановка размера типа данных указателя в арифметике с указателем"

Нет такого понятия, а-бсо-лю-тно, не существует.
Адресная арифметика - это просто арифметика над указателями. И в сотый раз - не указателями, как тип данных, даже про это ничего не сказано, а с указателями, как адрес на ячейку памяти
0x400000 num1 dd 0
0x400004 num2 dd 0

ptr = 0x400000+4
Произвёл вычисление относительно указателя 0x400000 (одной переменной), и вычислил указатель на другую переменную == адресная арифметика
источник

II

Ira Irina in Ассемблер
Вот в той статье которую ты привел - это перевод
источник

II

Ira Irina in Ассемблер
В оригинале написано про прибавление размера типа данных, сейчас поищу
источник