Поиск:

Ответ в темуСоздание новой темы Создание опроса
> в общем бред какой то... помогите разобраться 
:(
    Опции темы
Dreamuchiy
Дата 1.5.2011, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Даже не знаю как понятнее объяснить проблему. Примерно так:
в программе используется кманда BTR которая поддерживается процами от 386 соответственно в масме пишу .386 (если менше то ошибка разумеется). В общем в асме это выглядит так:
Код

.386
.modell small
.stack 100h
.data
data db 0
temp dw 0
.code
main PROC
call sub
mov al,4c00h
int 21h
main ENDP
SUB:
mov al,[data]
mov ah,0
mov [temp],ax
btr ax,7
btr ax,6
btr ax,5
btr ax,4
...........
ret


Смотрю в CV.EXE........
(сокращенно)
0000 E80600             CALL 0009
0003 0000                ADD  BYTE PTR [BX+SI],AL  (О как ! А где MOV ax,4C00H ???) 
0005 66B8004CCD21 MOV EAX,21CD4C00


Далее я думаю все понятно... Таже белиберда.
 откуда то беруться 32 разрядные регистры вместо 16
Пробовал в масме ставить вместо .386 - .286 все путем в дебаере но BTR то  не поддерживается....
Что делать не знаю.  smile  может кто подскажет в чем косяк?


Это сообщение отредактировал(а) Dreamuchiy - 2.5.2011, 10:47
--------------------
Мечтаю написать в карман Биллу Гейтсу... Или как минимум посмотреть крах Майкрософт...
PM MAIL   Вверх
iff
Дата 1.5.2011, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


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

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



В десятой строке написано mov al,4c00h. А есди прописать регистр не al, а ax? Странно, что компилятор не выдаёт ошибку. В всяком случае TASM записывать слово в регистр, размером байт не позволяет.

Возможно, причиной ошибки является отсутствие инициализации регистра ds. Нужно в самом начале программы прописать:
Код

mov ax,@data
mov ds,ax

или
Код

push @data
pop ds

(второй вариант весит меньше, но обращается к памяти и следовательно выполняется медленнее)


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
Dreamuchiy
Дата 2.5.2011, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



в 10 строке AX, это я просто тут ошибся

Оно ассемблером (кмпилятором) определяется как 32-разрядные команды

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

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

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


 




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


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

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