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

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

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


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

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

для эксперимента, можно взять дизассемблер "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,103
По умолчанию

А давайте подумаем - вот вы сказали зарезервировать 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,103
По умолчанию

Вы спросили - всегда ли компилятор вычисляет?
Я говорю - предположим нет и вы пишите 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,103
По умолчанию

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
Сообщений: 68
По умолчанию

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840