От Alexandre Putt
К Александр
Дата 23.08.2009 22:18:46
Рубрики Россия-СССР; Крах СССР; История; Идеология;

Ну прямо сразил

> call comlex_add

Откуда взялось complex_add? Дурочку включили?

На ассемблере
• нет стандартных библиотек
• нет управления памятью
• нет массивов
• нет поддержки вещественных чисел
• нет встроенных мат операций
• нет типов данных и структур

> Какие тысячи вопросов аппаратной реализации в двух строках

Вопросы организации операций с вещественными числами

> push 2.0
> call sqrt

Сразу видно, что на ассемблере Вы ни разу ничего не написали. Потому что на ассемблере нет поддержки вещественных чисел. Соответственно никакой push 2.0 не возможен

Я правильно понял, программа управления ядерным реактором у Вас тоже в одну строчку на ассемблере?

call RunReactor

?

Судя по всему, Вы даже не понимаете разницы между компилятором и языком программирования.

> Программ не было. Стало быть, нечего и переносить.

Ну вот Вы и охарактеризовали уровень развития ИТ в СССР: "Программ не было"

От Александр
К Alexandre Putt (23.08.2009 22:18:46)
Дата 24.08.2009 01:48:09

Re: Ну прямо...

>> call comlex_add
>
>Откуда взялось complex_add? Дурочку включили?

Оттуда же откуда на Фортране для SQRT(2.0), из библиотеки. Не вставлять же каждый раз весь алгоритм.

Если вас интересует как реализовано вычисление квадратных корней по методу Ньютона, то это и на фортране далеко не одна строчка

      function sqrt (x)
c june 1977 edition.   w. fullerton, c3, los alamos scientific lab.
      dimension sqrt2(3)
      external alog, r1mach, r9pak
      data sqrt2(1) / 0.7071067811 8654752e0 /
      data sqrt2(2) / 1.0 e0 /
      data sqrt2(3) / 1.4142135623 7309505 e0 /
c
      data niter / 0 /
c
      if (niter.eq.0) niter = 1.443*alog(-0.104*alog(0.1*r1mach(3)))+ 1.
c
      if (x.le.0.) go to 20
c
      call r9upak (x, y, n)
      ixpnt = n/2
      irem = n - 2*ixpnt + 2
c
c the approximation below has accuracy of 4.16 digits.
      sqrt = .261599e0 + y*(1.114292e0 + y*(-.516888e0 + y*.141067e0))
c
      do 10 iter=1,niter
        sqrt = sqrt + 0.5*(y - sqrt**2) / sqrt
 10   continue
c
      sqrt = r9pak (sqrt2(irem)*sqrt, ixpnt)
      return
c
 20   if (x.lt.0.) call seteru (21hsqrt    x is negative, 21, 1, 1)
      sqrt = 0.0
      return
c
      end

http://gams.nist.gov/serve.cgi/ModuleComponent/8035/Fullsource/NETLIB/sqrt.f

Впрочем, на х87ассемблере вычисление квадратного корня будет выглядеть так:
fld addr1
fsqrt
fst addr2


>На ассемблере
>• нет стандартных библиотек

Глупость.

>• нет управления памятью

Глупость

>• нет массивов

глупость

>• нет поддержки вещественных чисел

глупость. Посмотрите команды х87, или SSE

>• нет встроенных мат операций

глупость

>• нет типов данных и структур

глупость.

Как много и сразу :))

>> Какие тысячи вопросов аппаратной реализации в двух строках
>
>Вопросы организации операций с вещественными числами

Как то например?

>> push 2.0
>> call sqrt
>
>Сразу видно, что на ассемблере Вы ни разу ничего не написали. Потому что на ассемблере нет поддержки вещественных чисел. Соответственно никакой push 2.0 не возможен

Да у вас ничего невозможно, все только взрослые дяденьки делать могут.

      db    -0.2                    ; "Quarter precision" 
      dw    -0.5                    ; IEEE 754r/SSE5 half precision 
      dd    1.2                     ; an easy one 
      dd    1.222_222_222           ; underscores are permitted 
      dd    0x1p+2                  ; 1.0x2^2 = 4.0 
      dq    0x1p+32                 ; 1.0x2^32 = 4 294 967 296.0 
      dq    1.e10                   ; 10 000 000 000.0 
      dq    1.e+10                  ; synonymous with 1.e10 
      dq    1.e-10                  ; 0.000 000 000 1 
      dt    3.141592653589793238462 ; pi 
      do    1.e+4000                ; IEEE 754r quad precision
...
      mov    rax,__float64__(3.141592653589793238462)


http://www.nasm.us/doc/nasmdoc3.html#section-3.4.1

>Я правильно понял, программа управления ядерным реактором у Вас тоже в одну строчку на ассемблере?

"программа управления ядерным реактором" - это для дураков, вроде среднего американского старшекласника. ИБМ704 не могла этим заниматься в принципе. Реально речь идет о каких-то вычислениях.

>Судя по всему, Вы даже не понимаете разницы между компилятором и языком программирования.

Вам трудно судить о том что я понимаю и что нет.

>> Программ не было. Стало быть, нечего и переносить.
>
>Ну вот Вы и охарактеризовали уровень развития ИТ в СССР: "Программ не было"

И не только СССР
--------------------
http://www.orossii.ru