forum.kai.ru

Форум КНИТУ-КАИ
Текущее время: 25 сен 2017, 02:43

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: 32битный режим ассемблера
СообщениеДобавлено: 07 май 2007, 16:44 
Не в сети
Новый посетитель
Аватар пользователя

Зарегистрирован: 22 дек 2006, 16:08
Сообщений: 4
Откуда: Beyond
Помогите пожалуйста разобраться с использованием директивы .386p,
при ее вставлении в программу, MASM пишет Phase Error Between Passes, TASM переваривает это, но в итоге программа (exe) не работает...

Код:
.386p
   ASSUME   CS:_KOM,SS:_STEK,DS:_DAN
_STEK   SEGMENT   STACK
   DW   10000 DUP (?)
_DNOST   DW   ?
_STEK   ENDS   
_KOM   SEGMENT   
_main   PROC   FAR
   MOV   AX,_DAN
   MOV   DS,AX
   MOV   AX,_STEK
   CLI   
   MOV   SS,AX
   LEA   SP,_DNOST
   STI   
   FINIT   
   PUSH   BP
   MOV   BP,SP
   POP   BP
   MOV   AH,4CH
   INT   21H
_main   ENDP   
   INCLUDE   std.asm
_KOM   ENDS   
_DAN   SEGMENT   
_c   DW   4
BUFFER2   DW   ?
BUFFER4   DD   ?
_DAN   ENDS   
   END   _main


это шаблон генерации программы с языка С0 на язык Ассемблер
(транслятор Хохлова)....
если директиву убрать все работает, но без нее не доступен 32битный режим....

и у меня еще один вопрос... как присвоить переменной (или регистру математического сопроцессора) вещественное число (константу)...
команда FLD позволяет загружать вещественное число только из памяти...

Заранее спасибо

_________________
Fulfil your destiny and take a place at my side!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 май 2007, 13:13 
Не в сети
ник, генерирующий сообщения

Зарегистрирован: 08 окт 2004, 15:54
Сообщений: 305
Откуда: выпуск 2009 4-й фак
1.нафига тебе 32 бита?
2.по второму вопросу- зубков рулит, да и у калашникова есть немного про это
FLD источник Загрузить вещественное число в стек
FST приемник Скопировать вещественное число из стека
FSTP приемник Считать вещественное число из стека


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 май 2007, 18:38 
Не в сети
Новый посетитель
Аватар пользователя

Зарегистрирован: 22 дек 2006, 16:08
Сообщений: 4
Откуда: Beyond
1. Мне нужно добавить переменную типу флоат (4 байта)...
следовательно необходимы операции помещения переменной в стек памяти и пересылки в расширенные 32х битные регистры которые доступны только в 32х битном режиме...
2. FLD грузит в стек FPU либо из памяти 32х битное значение либо из регистра FPU....
указывание непосредственно констант запрещено... мне нужно чтобы она грузила константу...
например у меня написано на С0: "a=2.34". ... и он должен КАК-ТО перекинуть эту константу в ячейку памяти a...
хотя ни в MOV ни в FLD указание вещественных констант в качестве операнда не разрешено...
и опять таки для этих операций тоже нужен 32битный режим...

_________________
Fulfil your destiny and take a place at my side!


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB