db ?
Char3 db ?
Char4 db ?
end virtual
Данные сохраняются в регистре eax, или по адресу, который находится в этом регистре?🤷
Тут метки создаются так, что при их использовании они заменяются на eax+n, где n = 0, 1, 2, 3, т.е., смещение метки от начала virtual в байтах. Например, mov cl,[Char2] соберётся как mov cl,[eax+1]. Данные по адресу, который в eax, да.
А в регистре они не могут хранится?
И нет, нельзя сделать метку, ссылающуюся на кусок регистра. Или я вопроса не понял.
Все верно. Т.е. в регистр нельзя? Если нужно будет в регистре данные сохранить, придется их переместить так: mov eax, [eax] ?
Да, так тоже можно, но таким образом в eax прочитаются все четыре однобайтовых переменных, их потом придётся оттуда доставать сдвигами. Или можно читать по одной переменной mov al,[Char4].
решил податься в глубины препроцессора фасма или в книге где то встретил?
Da. Решил податься.
Обсуждают сегодня