Поиск:

Ответ в темуСоздание новой темы Создание опроса
> word dword обращение к байтам и словам 
V
    Опции темы
Logree
Дата 8.8.2009, 03:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: 1
Всего: 2



есть два варианта кода, на мой взгляд оба варианта должны работать правильно но на практике получается что я чего-то не понимаю

1вар(не работает)
Код

         mov     eax,dword[es:bx+44h]       ; здесь я проверял в eax число 0000026Dh
         mov     dword[File_Size],eax          ; потом заносим его в переменную (File_Size dd ?)
                                                                
        mov     eax,100h
        mov     cx,ax
        cmp     dword[File_Size],eax           ; сравниваем        
        jng     .cnt_1                                   ; если меньше то прыжок

        mov     dx,word[File_Size]              ; заносим в dx старшее слово  из File_Size, по идее должно быть 0
        mov     ax,word[File_Size+2]          ; заносим в ax младшее слово  из File_Size, по идее должно быть 026Dh
                                                               ; но если проверить... там нули! Что не так?
        div       cx                                        ; dx -  остаток  ax - частное 


делаем то же самое но без File_Size и всё нормально
2вар рабочий
Код

         mov     eax,dword[es:bx+44h]     

        mov     cx,100h
        cmp     eax,ecx
        jng     .cnt_1                    

        mov     edx,eax
        shr      edx,10h

        div     cx     

что в первом примере не так?

Это сообщение отредактировал(а) Logree - 8.8.2009, 03:53


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
AndNot
Дата 8.8.2009, 05:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 28.2.2008

Репутация: нет
Всего: нет



Цитата(Logree @  8.8.2009,  03:49 Найти цитируемый пост)
        mov     dx,word[File_Size]              ; заносим в dx старшее слово  из File_Size, по идее должно быть 0        mov     ax,word[File_Size+2]          ; заносим в ax младшее слово  из File_Size, по идее должно быть 026Dh

Ты перепутал младшее и старшее слово. Нужно так:
Код
        mov     dx,word[File_Size+2]              ; заносим в dx старшее слово  из File_Size, по идее должно быть 0
        mov     ax,word[File_Size]          ; заносим в ax младшее слово  из File_Size, по идее должно быть 026Dh
И все будет путем smile
PM MAIL   Вверх
Logree
Дата 8.8.2009, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: 1
Всего: 2



Но ведь СТАРШЕЕ СЛОВО ПО МЛАДШЕМУ АДРЕСУ?


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
GoldFinch
Дата 8.8.2009, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



Logree, нет.
младшее слово (и байты) по младшему адресу, старшее - по старшему

Это сообщение отредактировал(а) GoldFinch - 8.8.2009, 21:00
PM MAIL ICQ   Вверх
Logree
Дата 8.8.2009, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: 1
Всего: 2



всем пасибо... 




--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0449 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.