Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Ассемблер? Это просто! Учимся программировать


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Boriss
Статус: Академик
Рейтинг: 2221
∙ повысить рейтинг »
_Ayl_
Статус: Практикант
Рейтинг: 1843
∙ повысить рейтинг »
vladisslav
Статус: 6-й класс
Рейтинг: 1243
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Assembler (Ассемблер)

Номер выпуска:1331
Дата выхода:06.05.2010, 11:00
Администратор рассылки:Лысков Игорь Витальевич, Модератор
Подписчиков / экспертов:292 / 60
Вопросов / ответов:1 / 1
IRC-канал по теме:#assembler

Вопрос № 178140: Доброго времени суток дорогие эксперты: Требуется с помощью ТАСМ реализовать решение задачи: Написать программу (и прокомментировать её) для выполнения арифметической операции умножение над 2мя вещественными числами представленных в расширенно...



Вопрос № 178140:

Доброго времени суток дорогие эксперты:
Требуется с помощью ТАСМ реализовать решение задачи:
Написать программу (и прокомментировать её) для выполнения арифметической операции умножение над 2мя вещественными числами представленных в расширенном формате.

Хар-ки:
1) процессор intel core 2 solo CPU U3500
2) window vista home premium 32х разрядная
3) Turbo Assembler Version 4.1 в папке asm находится файл TASM поэтому думаю он предпочтителен
4) вычисления производить в сопроцессоре

Спасибо за внимание!

Отправлен: 01.05.2010, 10:46
Вопрос задал: Юдин Евгений Сергеевич, 1-й класс
Всего ответов: 1
Страница вопроса »


Отвечает amnick, 10-й класс :
Здравствуйте, Юдин Евгений Сергеевич.

Насколько я понимаю, расширенный формат вещественных чисел соответствует типу long double в С (10-байтовые вещественные числа). Приведенная ниже функция умножения предназначена для вызова из программ для DOS, модель памяти COMPACT или LARGE (дальние указатели на данные).
Код:
; 178140a.asm
; умножение 2-х вещественных чисел, представленных в расширенном формате.
; TASM, сопроцессор

locals @@
.model compact, C
.386

.code
public mulx

.8086 ; переключаем на 8086, чтобы TASM сгенерировал
; PUSH BP/MOV BP,SP вместо ENTER

; long double mulx( const long double* p1, const long double* p2 );
proc mulx
arg @@p1: dword, @@p2: dword
uses si ; регистр SI нужно с охранять

LES si,[@@p1] ; указатель на первый сомножитель

; При генерации кода для 8086/8087 TASM вставляет инструкции WAIT
; перед каждой инструкцией сопроцессора.

.386

; Переключив на 80386/80387, мы исключаем ненужные для современных
; процессоров инструкции

fld tbyte ptr ES:[si] ; загружаем первый сомножитель в стек сопроцессора
LES si,[@@p2] ; указатель на второй сомножитель
fld tbyte ptr ES:[si] ; загружаем второй сомножитель в стек сопроцессора
fmulp st(1),st ; результат умножения - на вершине стека сопроцессора
.8086 ; переключаем на 8086, чтобы TASM сгенерировал POP BP вместо LEAVE
ret
endp mulx

end


Компиляция:
tasm -m2 -zn -mx %1

В приложении приведена тестовая программа для Borland C++. Для сборки создайте проект, в который поместите файл исходника (178140.с) и 178140a.obj.

Успехов!

Приложение:

Ответ отправил: amnick, 10-й класс
Ответ отправлен: 03.05.2010, 19:53
Номер ответа: 261185

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 261185 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.14 от 03.03.2010

    В избранное