Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26324
Рейтинг: 2147
#31: 2010-10-01 02:41:20 ЛС | профиль | цитата
Tad писал(а):
будешь иметь "отрицательную" память. Вот до чего вы договорились

Ты че куришь, трава у тебя заборная
Причем тут знак памяти вообще (что это вообще такое, я никак и ни у кого добиться не могу ), один ляпнул, и все подхватили, кто со стебом, а кто и серъезно
Tad писал(а):
Там "физика" совсем другая. Там больше похоже на поляризованное реле +0.6v - пошло направо, -0.05v - налево

Причем там физика, и причем там реле
Какая мне, к примеру, разница, как там проходят сигналы У меня есть набор инструкций и регистров, как оно там гуляет по процу, мне сугубо по-веникам, главное -- их конечное действие

Tad писал(а):
А в первых процессорах команда SUB (вычесть) выполнялась сложением

И что, если второй операнд прогнать через not, то и получится вычитание сложением

Базар, какой-то, ни о чем. Нафиг, пора закрывать тему, а то еще кто-то и "мнимую" память придумает

карма: 22

0
Ответов: 16884
Рейтинг: 1239
#32: 2010-10-01 03:05:02 ЛС | профиль | цитата
nesco писал(а):
как оно там гуляет по процу


#pas
function Max( X, Y: Integer ): Integer;
asm
{$IFDEF F_P}
MOV EAX, [X] // 14
MOV EDX, [Y] // 14
{$ENDIF F_P}
CMP EAX, EDX // 3
JGE @@exit //16
MOV EAX, EDX //10
@@exit:
end {$IFDEF F_P} [ 'EAX', 'EDX' ] {$ENDIF};
итого 57 циклов тактового генератора.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26324
Рейтинг: 2147
#33: 2010-10-01 03:14:33 ЛС | профиль | цитата
Tad писал(а):
итого 57 циклов тактового генератора

Ну да, конечно, а сколько тратится на

ReadInteger(_Data,Data,0)
и
_hi_onEvent(...)

ты посчитать забыл

По-моему, это тут уже обсуждали, что приемлемое быстродействие можно получить только в пакете FTCG, где убираются ненужные интерфейсные преобразования, тянущие на себя огромное время

карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#34: 2010-10-01 03:14:55 ЛС | профиль | цитата
Tad писал(а):
это не IF в нашем привычном понимании. Там "физика" совсем другая.

все if, case, while и прочие реализованы через одни команды процессора. И "физика" там с реле не связана - если проверка успешна, то CPU осуществляет инкремент регистра EIP на смещение, указанное в аргументе команды сравнения, иначе регистр EIP инкрементится на размер команды сравнения (т.е. переходит к выполнению следующей инструкции). Вот такой код

#pas
if a > b then
// proc
// other code
любой компилятор превратит в такой:

  сравнить a и b
прыгнуть на точку @here, если флаг не установлен
// proc
@here:
// other code
карма: 26
0
Разработчик
Ответов: 26324
Рейтинг: 2147
#35: 2010-10-01 03:20:41 ЛС | профиль | цитата
Dilma писал(а):
любой компилятор превратит в такой

Ну да, тот же самый If


  CMP EAX, EDX // 3
JGE @@exit //16
MOV EAX, EDX //10
@@exit:
карма: 22

0
Ответов: 274
Рейтинг: 47
#36: 2010-10-01 10:10:30 ЛС | профиль | цитата
[flood] [/flood]
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#37: 2010-10-01 20:25:33 ЛС | профиль | цитата
[flood]
Dilma писал(а):
любой компилятор превратит в такой:
сравнить a и b
а процессор решает это (CMP a, b) вычитанием:
a-b
и не сохраняя результат вычитания выставит флаги, обыкновенной схемой или-не, которая совсем не If
6 | 0 |которые означают, что
ZF | CF |
0 | 0 | b<a
1 | 0 | b=a
0 | 1 | b>a

( для операндов без знака )[/flood]
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26324
Рейтинг: 2147
#38: 2010-10-01 21:41:26 ЛС | профиль | цитата
[flood]Tad, а куда в твоем описании девалось самое главное -- условный переход [/flood]
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#39: 2010-10-01 22:56:18 ЛС | профиль | цитата
[offtop]
Tad писал(а):
а процессор решает это (CMP a, b) вычитанием:

я специально не расписывал, что такое "сравнить", т.к. это не эквивалент команды CMP (хотя бы потому, что нельзя сравнивать два операнда в памяти)

Tad писал(а):
и не сохраняя результат вычитания выставит флаги, обыкновенной схемой или-не, которая совсем не If

а при чем тут команда CMP и If Непосредственную проверку условия выполняют команды типа jxxx (и это опять таки же не обязательно делать в паре с CMP). [/offtop]
карма: 26
0
39
Сообщение
...
Прикрепленные файлы
(файлы не залиты)