Операторы бейсика. Сколько тактов?
ZXNet echo conference «code.zx»
from: van Yu Shinn
to: All
date: 5 August 2006
Hello, All
Сколько тактов занимают машинные команды знают все.
А сколько тактов занимают операторы бейсика? Где почитать?
from: Гаврилов Виталий
to: All
date: 7 August 2006
Hello, jdigreze
jdi> Hе знаю где почитать, но каждый раз по-разному ;)
jdi> H-р все что связано с арифметикой, будет зависеть от
jdi> инициализированности переменных и калькулятора.
Hе только с арифметикой. Если посмотреть список команд калькулятора, то видно,
что туда умещается также работа со строками и прочие вычисления.
from: Kirill Frolov
to: All
date: 7 August 2006
Hello, captain cobalt
cap> А сколько тактов занимают операторы бейсика? Где почитать?
Много и больше. Типичный оператор -- несколько мс. Где почитать не знаю,
разве что измерить
самостоятельно.
from: rasmer
to: All
date: 14 August 2006
Hello, captain cobalt
cap> Сколько тактов занимают машинные команды знают все.
cap>
cap> А сколько тактов занимают операторы бейсика? Где почитать?
Вот ты извращенец....
from: Alex Astafiev
to: All
date: 22 August 2006
Hello, captain cobalt
В фирменном спектрумовском бейсике, насколько я это помню (все-таки лет 13
ничего не писал на нем :) ), есть есть одна неприятная вещь -
бейсик очень тормозно переходит по строкам, он ищет очередную подлежащую
выполнению строку. то есть начинает в памяти от начала бейсик-программы, и
перебирает строки пока не найдет нужную.
Именно поэтому, кстати, большие "коммерчески-серьезные" бейсик-программы
стремились писать так, чтобы в каждой строке было как можно больше операторов
бейсика - эдакими гигантскими строками-кусками. ..
Выполнение операторов бейсика сильно разное. Особенно тормоза начинаются там,
где внутренний бейски-калькулятор что-то считает с помощью других "слов"
калькулятора и с помощью полиномов Чебышева (синус какой-нибудь или
какаую-нибудь другую функцию). Вы посмотрите книгу О'Хары и Логана
(откомментированные исходники 48-й прошивки) - там можно получить представление
что происходит внутри бейсика...
from: Hиколай Мережко
to: All
date: 13 September 2006
Hello, captain cobalt
cap> Сколько тактов занимают машинные команды знают все.
cap>
cap> А сколько тактов занимают операторы бейсика? Где почитать?
Hа мой взгляд, без разницы. Только для самообразования. Я уже убедился: чтобы
написать что-то стоящее, нужно изучать assembler. Остальные или тормозят или
оптимизация страдает (читай "тоже тормозят"). Hо это лично мое мнение...
:smile:
from: Alex Astafiev
to: All
date: 14 September 2006
Hello, fenix
10 PAUSE 1; BORDER; 0 : BORDER 1 : BORDER 2 : BORDER 3 : BORDER 4 : BORDER 5 :
BORDER 6 : BORDER 7 : GO TO 10
from: Alexandr Sinyakov
to: All
date: 14 September 2006
Hello, captain cobalt
> 10 PAUSE 1; BORDER; 0 : BORDER 1 : BORDER 2 : BORDER 3 : BORDER 4 :
> BORDER 5 : BORDER 6 : BORDER 7 : GO TO 10
border жрёт >5300 тактов??? (ширина полосы=3 строки=24 линии=24*224=5376
тактов). OMG!!!
Где же родное это...
ld a,4
out (254),a
from: Павел Федин
to: All
date: 27 December 2006
Hello, SAM style
SAM> border жрёт >5300 тактов??? (ширина полосы=3 строки=24
SAM> линии=24*224=5376 тактов). OMG!!!
SAM> Где же родное это...
SAM> ld a,4
SAM> out (254),a
Hу во-первых BORDER n - это не только OUT (#FE), A. Это еще и закраска оным
цветом нижней части экрана (которая область командной строки). А это куда хуже
будет.
from: Сергей Гордеев
to: All
date: 27 December 2006
Hello, SAM style
Существует эмулятор BASin, у когорого есть функция, которая рисует некую
диагрмамму, так сказать для каждого оператора свой столбик, прекрасно видно где
программа пролетает, а где затормаживается на вычисления
from: Alexandr Sinyakov
to: All
date: 27 December 2006
Hello, Sonic
Son> Hу во-первых BORDER n - это не только OUT (#FE), A. Это еще и
Son> закраска оным цветом нижней части экрана (которая область командной
Son> строки). А это куда хуже будет.
Закраска и очистка нижней части происходит когда туда что-то выводится. Сам
border ее не закрашивает (сделай border 0 : pause 0). А вот на поиск оператора
в строке бейсик-проги уходит действительно много. Плюс еще преобразование числа
через тормознутый калькулятор.
from: Yuri Potapov
to: All
date: 27 December 2006
Hello, SAM style
SAM> border жрёт >5300 тактов??? (ширина полосы=3 строки=24
SAM> линии=24*224=5376 тактов). OMG!!!
SAM> Где же родное это...
SAM> ld a,4
SAM> out (254),a
SAM> ...
а написать
OUT (254),4
аффтару религия не позволяет? :)
from: poisoned cyberjack
to: All
date: 28 December 2006
Hello, SAM style
А еще в Бейсике время выполнения команды зависит от номера строки в программе -
то есть чем дальше от начала, тем дольше выполняется "оператор"...
from: Роман Дубинин
to: All
date: 28 December 2006
Hello, captain cobalt
cap> Сколько тактов занимают машинные команды знают все.
cap>
cap> А сколько тактов занимают операторы бейсика? Где почитать?
Гы-ы! Очень много. Убило наповал то, что вывод символов в цикле - ощущаем
глазами :v2_laugh;
Где-то; в умной книге видел:
1) Басик - язык для дебилов
2) Паскаль - язык для сосунков
3) Си - язык для профессионалов
4) Ассемблер - для маньяков ;)
from: Slavik Tretiak
to: All
date: 28 December 2006
Hello, Romanich
бейсик однозначно тормоз.
ибо я когда-то писал демки на бейсике, так вот,
одну точку можно нарисовать во фрейм.
две точки - только если нет сильных вычислений.
три точки - и всё тормозит :)
так что правильно писал fk0 по поводу того сколько тактов занимают операторы
бейсика - "Много и больше"
|