|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.05.2019, 18:23 | #11 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
ассемблер собирает код в несколько проходов.
на первом - препроцессор высчитывает все константы, и метки а на втором/третьем уже компилирует. т.е. выражения сразу высчитываются и уже их сумма зашивается в код. Если-же константа указана явно, то само-собой проверяется размер dd - а как иначе. Другими словами, этот плюс только в исходнике, а в программе уже сумма (в зависимости от выделенной ячейки)
Нашедшего выход - затаптывают первым..
|
30.05.2019, 18:30 | #12 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
для эксперимента, можно взять дизассемблер "W32Dasm" и открыть в нём любую/увесистую программу. Он как-раз проводит обратные операции перед отображением кода, и тоже в несколько проходов.
Нашедшего выход - затаптывают первым..
|
31.05.2019, 15:16 | #13 |
Регистрация: 30.05.2019
Сообщений: 8
|
А в случае с выражениями, ассемблер вычисляет их и всегда, если это возможно, подгоняет под нужный размер?
|
31.05.2019, 15:31 | #14 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
А давайте подумаем - вот вы сказали зарезервировать 1+2 байт. Компилятор не вычисляет и ... Собственно, что и? Сколько памяти выделять то?
|
31.05.2019, 15:46 | #15 |
Регистрация: 30.05.2019
Сообщений: 8
|
|
31.05.2019, 15:57 | #16 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Вы спросили - всегда ли компилятор вычисляет?
Я говорю - предположим нет и вы пишите a db 1+2 сколько памяти выделять то? |
31.05.2019, 16:02 | #17 |
Регистрация: 30.05.2019
Сообщений: 8
|
Ну в таком случае непонятно, сколько выделять. Понятно, что выражения всегда вычисляются. Мой вопрос в том, что происходит после вычисления, а именно в случае, если результат превышает указанный размер.
|
31.05.2019, 16:22 | #18 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
|
09.08.2019, 04:01 | #19 |
Форумчанин
Регистрация: 05.09.2016
Сообщений: 133
|
Mauko "assembler"
Немного о GoAsm.
|
09.08.2019, 04:54 | #20 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
Nif-naf,
поставь ты себе виртуальную клавиатуру. За это время, неужели, на клавиатуру с кириллической раскладкой не насобирал? Или пиши "украинскими" буквами, тогда только буквы Э и Ы пострадают |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определите и запишите в протокол шестнадцатеричный объектный код для следующих директив резервирования памяти | 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 |