Секреты ассемблирования дизассемблерных листингов

         

дважды определенный символ Locale


Ничего не остается как "расщеплять" переменные вручную, давая им различные имена. Главное — не перепутать переменные местами. Впрочем, перепутать будет довольно трудно, поскольку, одна копия переменной — локальная и адресуется через стек, а другая — глобальная и обращение с ней происходит через непосредственную адресацию.

Разобравшись с астральными переменными, нам остается только побороть три ошибки, связанные с выравниванием. Ну, ошибку в строке 8064 мы ликвидируем путем удаления директивы "align 800h" (800h в десятичном представлении как раз и будет 2048). Две остальные ошибки требуют переименования сегментов _text и _data

во что-нибудь другое, например, _text1 и _data1, только это переименование должно иди по всему тексту.

Все! Теперь ассемблерный листинг, сгенерированный дизассемблером, и "слегка" исправленный напильником, транслируется без ошибок! Добавим к командой строке MASM'а ключ "/Cp", чтобы он соблюдал регистр публичных имен и….



Содержание раздела