Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2010, 10:15   #1
Ra88
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 21
По умолчанию 80 битовые переменные

Не могу освоить работу с переменными большого размера, например, требуются операции для чисел с плавающей запятой И хочеться использовать 80 битовые переменные (тип dt). Немогу понять как присвоить такой переменной значение ?
Знаю что в облать большую по размеру можно занести переменную, которая по размеру меньше c помощью команды ptr (word ptr, byte ptr)
Как переменной типа dt присвоить значение регистра? или перекинуть туда значение из dd ? (целесообразно ли так делать?) Как запихнуть введённое с клавиатуры число в этот тип? Помогите люди добрые! Чёто я запарился)
Пишу на MASMе 10.
Ra88 вне форума Ответить с цитированием
Старый 29.09.2010, 10:48   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

например так:
инициализация в тексте программы:
Код:
a dt 3.0
Если написать просто 3, то результат может быть непредсказуемым.
записать значение:
Код:
a dt ?
aa dd 3
...
fild aa;загрузка в сопроцессор целого числа (dd, dw)
fstp a;сохранение в памяти числа с плавающей точкой
fld a ;загрузка в сопроцессор числа с плавающей точкой
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 29.09.2010, 10:54   #3
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Ra88
Не могу понять как присвоить такой переменной значение ?
x dt 3.1415926535897932384626433832795
Как переменной типа dt присвоить значение регистра?
mov dword ptr x,ecx
mov dword ptr x+4,ebx
mov word ptr x+8,ax
перекинуть туда значение из dd ?
пусть y и z переменные типа DWORD
push y
pop dword ptr x
push z
pop dword ptr x+4
Как запихнуть введённое с клавиатуры число в этот тип?
должна быть подпрограмма, которая переведет строку символов, введенных с клавиатуры в вещественное число типа dt
Mikl___ вне форума Ответить с цитированием
Старый 29.09.2010, 16:32   #4
Ra88
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 21
По умолчанию

Всем спасибо) Но alexcoder представил верный способ, а варианты Mikl__а по присвоению значения регистра и dd не получились.
Ra88 вне форума Ответить с цитированием
Старый 30.09.2010, 12:41   #5
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

вот тебе литература почитай по сопрцессор.
прав до там написано много лишнего, но зато понятно

http://depositfiles.com/files/r965zkaku
wanes101 вне форума Ответить с цитированием
Старый 30.09.2010, 16:45   #6
BVOG
Python,C++,ASM,Php
Пользователь
 
Аватар для BVOG
 
Регистрация: 29.08.2010
Сообщений: 58
По умолчанию

Если не ошибаюсь все сегментые регистры 80-битные, 16-бит нормальные, а остальные теневые.
Хакер - это не ламер с завышенным самомнением, а программист с заниженной зарплатой.
Нелегка и неказиста жизнь простого программиста.
BVOG вне форума Ответить с цитированием
Старый 07.10.2010, 10:47   #7
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
Сообщение

Цитата:
Сообщение от BVOG Посмотреть сообщение
Если не ошибаюсь все сегментые регистры 80-битные, 16-бит нормальные, а остальные теневые.
Если это 80-бит то это регистры сопроцессора, которые ещё называются стёком сопроцессора.
У процессора сегментные 16-бит, если процессор 8086, 286 то пользовательские 16-бит или у 386 и страрше 32-бит.
Есть и другие регистры у процессора для управленния компьютером. Про остальные я не читал. Если хочеш прочитать, то можно найти много полезного в книги "ASSEBLER учебный курс" В. И. Юрова в уроке по зазщищённому режиму процессора.
wanes101 вне форума Ответить с цитированием
Старый 09.10.2010, 14:40   #8
BVOG
Python,C++,ASM,Php
Пользователь
 
Аватар для BVOG
 
Регистрация: 29.08.2010
Сообщений: 58
По умолчанию

Не знаю на счёт сопроцесора, но в документации по 386 есть описание стека главного процессора, где указано, что16-бит - общее, а остальное теневое, т.е. используется процессором для кэша значений регистра.
Хакер - это не ламер с завышенным самомнением, а программист с заниженной зарплатой.
Нелегка и неказиста жизнь простого программиста.
BVOG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Битовые операции СИ savra Помощь студентам 0 10.03.2010 19:31
Битовые операции ("")(Э_Є)("") Общие вопросы C/C++ 4 03.07.2009 19:15
Битовые операции DrAlexx2121 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 14.06.2008 22:26
Битовые операции LEX.darnica Помощь студентам 14 23.12.2007 19:40
Битовые операции zetrix Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 15.12.2006 11:08