Информационные технологии для развлечения

Добро пожаловать. Вы не зашли на сайт под своим логином. Вы можете зарегистрироваться или выполнить вход.

Пробей человека: день рождения, адрес, паспортные данные

[ASM] Возведение x в степень y на ассемблере

Категория: Assembler

Код, выполняющий возведение вещественного числа x в вещественную степень y:

model small
.386
.stack 100h
.data

y dd 2.7 ; ваше значение степени
x dd 3.0 ; ваше значение основания

cw dw ?

.code
start:  
mov ax, @data
mov ds,ax

finit

  fld y
  fld x
  fyl2x
  fld st(0)
  frndint
  fsubr st(0),st(1)
  f2xm1
  fld1
  faddp
  fscale
  fxch st(1)
  fstp st

  mov ah, 4ch
  int 21h
end start

В результате в вершине стека сопроцессора ST(0) будет содержаться вещественное значение (x в степени y).
x^y = 3.0^2.7 =  19,41902351977

Комментарии

auxoid
Постов: 1
Comment
Re: [ASM] Возведение x в степень y на ассемблере
Комментарий #2 от : Sun June 05, 2011, 12:08:44
что непонятного-то?
1. инициализируем сопроцессор командой:
finit
2. загружаем в его стек переменные x и y:
fld y
fld x
3. выполняем неведомые манипуляции над этими двумя переменными, в которых нереально разобраться (про арифметический сопроцессор и систему команд сопроцессора есть куча доков в инете, а также она описана в любой книжке по ассемблеру для процессоров x86)
fyl2x
fld st(0)
frndint
fsubr st(0),st(1)
f2xm1
fld1
faddp
fscale
fxch st(1)
fstp st
4. и, вуаля - у нас в вершине стека сопроцессора результат вычислений. дальше извращаемся с ним по своему усмотрению и забираем командой fst или fstp
5. ну и корректно завершаем выполнение программы:
mov ah, 4ch
int 21h

P.S. для того я и выложил сюда этот кусок кода, потому что в нём х.. разберёшься. да и незачем: копи-паст и счастлив на весь день
Anonymous
Постов: 1
Comment
Re: [ASM] Возведение x в степень y на ассемблере
Комментарий #1 от : Fri June 03, 2011, 21:34:16
нихера ниче не понятно, блеать!

Оставь каммент, блеять

  • Рядом с обязательными полями стоит символ «*».

If you have trouble reading the code, click on the code itself to generate a new random code.
 



Меховая фабрика. Распродажа: вечерние платья - 01004, г. Киев, Пушкинская ул. 45/2 . Скидки в свадебных салонах - свадебный салон Софи: элегантные наряды разнообразных цветов оттенков. . 044 331 2638, Киев, бул. Дружбы Народов 23 - Если вы хотите выгодно купить диван.