Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

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

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

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

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

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

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

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

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

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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