Size: a a a

Ассемблер

2020 May 23

楽園松本 in Ассемблер
YorkIsMine
значения зависят от чего?
Большой проект может состоять из большого количества отдельных файлов. Линковщик будет собирать их в один exe файл. И вот на этом этапе в пропуски obj файлов будут вставлены рассчитанные линковщиком адреса.
источник

Y

YorkIsMine in Ассемблер
хорошо, такая ситуация. Заказчик сидит на винде и я на винде. Что может пойти не так и почему если я передам exe?
источник

Y

YorkIsMine in Ассемблер
а то так просто и не понял до конца предназначение obj
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
YorkIsMine
хорошо, такая ситуация. Заказчик сидит на винде и я на винде. Что может пойти не так и почему если я передам exe?
и нах ему твой ехе, как он его включит в свой проект?
источник

Y

YorkIsMine in Ассемблер
и тут я понял, что obj не запускаемый ведь...
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
ага
источник

Y

YorkIsMine in Ассемблер
кажется понял, спасибо вам)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
это просто набор данных и кода. без определений меток (как сказалии выше). твоя метка summa в секции данных приет конкретный адрес только при присоединении (линковки, link - связь/ссылкка) в основной проект
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
а до тех пор в объектнике твоя сумма будет иметь вид (примерно) mov eax, 34574jmhvbmvb??
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
при линковке, твои данные сольются в одну секцию данных со всеми остальными объектниками и будет присвоем конкретный адрес
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
причем заказчику можно и не отсылать сам исходный код, только необъодимые инклуды и сам объектник. как в одном фильме с крепким орешком
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
когда писалься или вирус или система управления спутниками. прогер и не знал для чего его код применяется. а исходники только у него и были, и заказчик чтоб замести следы, убивал прогеров и уничтожал улики
источник

Y

YorkIsMine in Ассемблер
Иными словами, когда я запускаю ассемблер, то он создает файл obj, где имеются пустые метки, потом благодаря линковке эти пустые метки заполняются, которые зависят..от чего? (хочу сказать, что от железа) Потом это все линкуется и получается наш exe-шник. Я правильно понимаю? А еще что значит метка(пропуски) для линковщика?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
вот у тя есть своя метка (sum) с данныи в секции данных,
.data
sum dd ?
у меня своя (rez).
.data
rez dd ?
при линковке они соедняются в одну секцию. какой адрес будет у твоей и моей метки?
источник

Y

YorkIsMine in Ассемблер
может какой-то единый для обоих?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
в итоге они появятся в одной секции и их расположение в секции будет разным, вот псевдокод
.data
sum dd ?
rez dd ?
или
.data
rez dd ?
sum dd ?
источник

Y

YorkIsMine in Ассемблер
а что значит собственно метка? Это по типу mov, inc, jmp и прочее?
источник

Y

YorkIsMine in Ассемблер
или метка это то, что мы в конце пишем end SomethingMarker?
источник

Y

YorkIsMine in Ассемблер
ну и в начале обьявляем и двоеточие пишем
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
метка это человеческое название смещения , напрмер 00401000h присваивается метка metka вот в таком коде
.data
metka dd 5
источник