|
|
|
|
sting |
Понедельник, 14 Марта 2005, 11:23
|
Участник
Профиль
Группа: Гость форума
Сообщений: 3
Регистрация: 14.03.2005
Пользователь №: 8139
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Добрый день....Возникла одна проблемка, может немного не по теме, но все же может поможет кто?? Мне нужно на ассемблере написать прогу вычисления десятичного логарифма... Думал, что проблемой окажется написание самой проги, но получилось так, что я даже не могу найти формулу разложения десятичного логарифма в ряд.... Люди добрые, если кто знает, поделитесь плиз....Буду очень благодарен...
|
|
|
|
|
mokc0der |
Понедельник, 14 Марта 2005, 16:41
|
Участник
Профиль
Группа: Профессионалы
Сообщений: 1278
Регистрация: 20.12.2001
Из: Москва
Пользователь №: 859
Конфигурация
Корпус: Thermaltake LanMoto Процессор: Другой Материнская плата: ASUS A8N-SLI Оперативная память: DIMM DDR PC3200 2048 Mb Видеокарта: ASUS X300SE Жесткий диск (винчестер): WD3200KS + ST3200822А Дисковод: 3.5" CD/DVD: NEC ND-4571 Модем: Zyxel 662HW Сетевой адаптер: built-in Звуковая плата: built-in AC97 Монитор: Sony SDM S71R Операционная система: WinXP, Vista Прочее: Bluetooth dongle
IBM T42
|
sting, немного по подробнее опишите проблему 1. Ассемблер слишком абстрактно - ассемблеров не одна сотня. (x86 ?) 2. Врядли кто-нить БЕСПЛАТНО напишет полностью готовую прогу по вычислению логарифма, укажите что конкретно не получается - подскажем. 3. Услови задачи допускает использование сопроцессора (AKA x87) ? 4. Как я препдполагаю асм всеже x86. Тогда ОС (ДОС/ВИН/ЛИНУКС) ? 5. Желательно указать что вы используете за компилятор TASM/MASM/FASM etc.
|
|
|
|
|
sting |
Вторник, 15 Марта 2005, 22:42
|
Участник
Профиль
Группа: Гость форума
Сообщений: 3
Регистрация: 14.03.2005
Пользователь №: 8139
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
В общем используем мы такую программульку как Emu8086 - эмулятор ассемблера...Т.е программульки на нем пишуться как бы под ДОС под х86 процессор...Суть такая, мне нужно написать программу, которая будет вычислять десятичный логарифм числа Х... Так вот, как я понял, для вычисления Х, нужно разложить этот логарифм в ряд (вроде Тейлора), но найти я этого не могу (самого разложения). Мне совсем немножечко, только формулу, а задачку может и сам осилю...Единственное, не знаю как работать с числами с плавающей точкой....Может хоть это кто подскажет... Замечал, что при деление, целая часть заносится в AL, а остаток в AH...Можно конечно на это ориентироваться, но еще не пробовал...
|
|
|
|
|
Квазимодо |
Среда, 16 Марта 2005, 8:32
|
Участник
Профиль
Группа: Участник
Сообщений: 162
Регистрация: 25.11.2003
Пользователь №: 6223
Конфигурация
Корпус: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Можно использовать такое разложение логарифма в ряд:
ln(X+1)=x-(x^2)/2+(x^3)/3-(x^4)/4+...
(т.е. через сумму слагаемых вида ((-1)^(i-1))*(x^i)/i ). Этот ряд сходится при -1<X<1, а количество его членов, которые необходимо просуммировать, определяется из требуемой точности вычислений (если очередной член ряда по модулю меньше погрешности, то на нем суммирование прекращается). Соответственно, lg X=ln X/ln 10.
--------------------
Я долго учился на чужих ошибках, и теперь мои собственные ошибки не хуже, чем у других.
|
|
|
|
|
mokc0der |
Среда, 16 Марта 2005, 8:59
|
Участник
Профиль
Группа: Профессионалы
Сообщений: 1278
Регистрация: 20.12.2001
Из: Москва
Пользователь №: 859
Конфигурация
Корпус: Thermaltake LanMoto Процессор: Другой Материнская плата: ASUS A8N-SLI Оперативная память: DIMM DDR PC3200 2048 Mb Видеокарта: ASUS X300SE Жесткий диск (винчестер): WD3200KS + ST3200822А Дисковод: 3.5" CD/DVD: NEC ND-4571 Модем: Zyxel 662HW Сетевой адаптер: built-in Звуковая плата: built-in AC97 Монитор: Sony SDM S71R Операционная система: WinXP, Vista Прочее: Bluetooth dongle
IBM T42
|
sting, я ОЧЕНЬ сильно сомневаюсь что с такими вопросами, ты способен написать прогу обрабатывающую числа с плавающей точкой без использования сопроцессора . Скорее всего надо использовать сопроцеесор, а он позволяет высчитывать натуральный логарифм . В данном случае посчитать надо примерно так. Код finit fldlg2 ; загружаем значение десятичного логарифма 2 в вершину стека сопроцессора fld numx; загружаем число fyl2x ; y * log X ... numx dt 1000.0
Разумеется код ОЧЕНЬ упрощен нет проверок, инициализации, вывода на экран и т.п. в результате этих операций в нулеувом регистре сопроцессора (st0) будет число равное десятичному логарифму числа numx (в данном примере 3.0) Сообщение отредактировал mokc0der - Среда, 16 Марта 2005, 9:07
|
|
|
|
|
sting |
Пятница, 18 Марта 2005, 9:05
|
Участник
Профиль
Группа: Гость форума
Сообщений: 3
Регистрация: 14.03.2005
Пользователь №: 8139
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
В том и проблема, что сопроцессор нам использовать нельзя...
|
|
|
|
|
mokc0der |
Пятница, 18 Марта 2005, 18:08
|
Участник
Профиль
Группа: Профессионалы
Сообщений: 1278
Регистрация: 20.12.2001
Из: Москва
Пользователь №: 859
Конфигурация
Корпус: Thermaltake LanMoto Процессор: Другой Материнская плата: ASUS A8N-SLI Оперативная память: DIMM DDR PC3200 2048 Mb Видеокарта: ASUS X300SE Жесткий диск (винчестер): WD3200KS + ST3200822А Дисковод: 3.5" CD/DVD: NEC ND-4571 Модем: Zyxel 662HW Сетевой адаптер: built-in Звуковая плата: built-in AC97 Монитор: Sony SDM S71R Операционная система: WinXP, Vista Прочее: Bluetooth dongle
IBM T42
|
sting, Ну чтож. Тады мой совет таков 1. Хорошо прошерстить и-нет. Наверняка можно найти Если не поможет 2. Обратись на wasm.ru/forum - там много классных спецов по асму, може у кого есть заготовки Если не поможет 3. Я бы скомпилял прогу выводящую логарифм на паскале без поддержки сопроцессор - дизассемблировал и разобрался
|
|
|
|
|
|
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
|
0 Пользователей:
|
|
© Copyright by WinCity.Ru 2001 - 2008 | Обратная связьУслуги веб-хостинга предоставлены компанией MTW.RU
|
|