Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 30.05.2019, 19:23   #11
R71MT
Профессионал
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,335
Репутация: 1082
По умолчанию

Цитата:
Сообщение от vladimashev Посмотреть сообщение
Непонятно просто, почему в таком случае
ассемблер собирает код в несколько проходов.
на первом - препроцессор высчитывает все константы, и метки
а на втором/третьем уже компилирует.
т.е. выражения сразу высчитываются и уже их сумма зашивается в код.
Если-же константа указана явно, то само-собой проверяется размер dd - а как иначе. Другими словами, этот плюс только в исходнике, а в программе уже сумма (в зависимости от выделенной ячейки)
__________________
Нашедшего выход - затаптывают первым..
R71MT вне форума   Ответить с цитированием
Старый 30.05.2019, 19:30   #12
R71MT
Профессионал
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,335
Репутация: 1082
По умолчанию

для эксперимента, можно взять дизассемблер "W32Dasm" и открыть в нём любую/увесистую программу. Он как-раз проводит обратные операции перед отображением кода, и тоже в несколько проходов.
__________________
Нашедшего выход - затаптывают первым..
R71MT вне форума   Ответить с цитированием
Старый 31.05.2019, 16:16   #13
vladimashev
Новичок
Джуниор
 
Регистрация: 30.05.2019
Сообщений: 8
Репутация: 10
По умолчанию

А в случае с выражениями, ассемблер вычисляет их и всегда, если это возможно, подгоняет под нужный размер?
vladimashev вне форума   Ответить с цитированием
Старый 31.05.2019, 16:31   #14
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,893
Репутация: 2668
По умолчанию

А давайте подумаем - вот вы сказали зарезервировать 1+2 байт. Компилятор не вычисляет и ... Собственно, что и? Сколько памяти выделять то?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 31.05.2019, 16:46   #15
vladimashev
Новичок
Джуниор
 
Регистрация: 30.05.2019
Сообщений: 8
Репутация: 10
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А давайте подумаем - вот вы сказали зарезервировать 1+2 байт. Компилятор не вычисляет и ... Собственно, что и? Сколько памяти выделять то?
Компилятор не вычисляет? Я не совсем понял, что вы имели тут в виду. Зависит от того, какая директива: db, dw или dd.
vladimashev вне форума   Ответить с цитированием
Старый 31.05.2019, 16:57   #16
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,893
Репутация: 2668
По умолчанию

Вы спросили - всегда ли компилятор вычисляет?
Я говорю - предположим нет и вы пишите a db 1+2 сколько памяти выделять то?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 31.05.2019, 17:02   #17
vladimashev
Новичок
Джуниор
 
Регистрация: 30.05.2019
Сообщений: 8
Репутация: 10
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Вы спросили - всегда ли компилятор вычисляет?
Я говорю - предположим нет и вы пишите a db 1+2 сколько памяти выделять то?
Ну в таком случае непонятно, сколько выделять. Понятно, что выражения всегда вычисляются. Мой вопрос в том, что происходит после вычисления, а именно в случае, если результат превышает указанный размер.
vladimashev вне форума   Ответить с цитированием
Старый 31.05.2019, 17:22   #18
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,893
Репутация: 2668
По умолчанию

https://ru.wikipedia.org/wiki/%D0%9F...B8%D0%BF%D0%B0
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 09.08.2019, 05:01   #19
Nif-naf
Форумчанин
 
Аватар для Nif-naf
 
Регистрация: 05.09.2016
Сообщений: 69
Репутация: -47
По умолчанию

Mauko "assembler"
__________________
Немного о GoAsm.
Nif-naf вне форума   Ответить с цитированием
Старый 09.08.2019, 05:54   #20
Mikl___
Профессионал
 
Регистрация: 11.01.2010
Сообщений: 1,151
Репутация: 1029
По умолчанию

Nif-naf,
поставь ты себе виртуальную клавиатуру. За это время, неужели, на клавиатуру с кириллической раскладкой не насобирал? Или пиши "украинскими" буквами, тогда только буквы Э и Ы пострадают
Mikl___ вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определите и запишите в протокол шестнадцатеричный объектный код для следующих директив резервирования памяти nelo_001 Assembler 6 28.06.2014 00:30
Директивы компилятора Alex2009 Общие вопросы Delphi 2 30.01.2014 06:10
Директивы ImmortalAlexSan Общие вопросы Delphi 4 07.11.2010 16:25
Директивы. VintProg Свободное общение 3 10.11.2009 15:35
Директивы препроцессора в С++ alef Общие вопросы C/C++ 1 25.04.2008 01:36


22:36.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.