Автор |
Сообщение |
|
|
Заголовок сообщения: |
|
|
|
вопрос писал(а): жаль, т.к. не встречал раскрашивателя под форумные теги, а так было бы неплохо - прямо из редактора в форум
А что мешает написать конвертер из хтмл?
[quote="вопрос"]жаль, т.к. не встречал раскрашивателя под форумные теги, а так было бы неплохо - прямо из редактора в форум[/quote]
А что мешает написать конвертер из хтмл? ;)
|
|
|
|
Добавлено: Вс июн 07, 2009 22:06 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
жаль, т.к. не встречал раскрашивателя под форумные теги, а так было бы неплохо - прямо из редактора в форум
:( :( :oops:
|
|
|
|
Добавлено: Ср июн 03, 2009 22:47 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
расцвечивать надо не html-ными тегами, а форумными, если хочется...
А форумный движок не позволяет использовать span-ы, stylе-ы и т.п. вещи.
флажок разрешения html позволяет использовать лишь очень ограниченый набор тегов
[color=red]расцвечивать надо не html-ными тегами, а форумными, если хочется...[/color]
А форумный движок не позволяет использовать [color=green]span[/color]-ы, [color=violet]stylе[/color]-ы и т.п. вещи.
флажок разрешения html позволяет использовать лишь очень ограниченый набор тегов
|
|
|
|
Добавлено: Ср июн 03, 2009 22:10 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
пробуем
<pre style='color:#000000;background:#ffffff;'><span style='color:#800000; font-weight:bold; '>: </span><span style='color:#000000; background:#a8a800; '>fff</span> <span style='color:#800000; font-weight:bold; '>DUP</span> VAR1 <span style='color:#800000; font-weight:bold; '>@</span> <span style='color:#800000; font-weight:bold; '>+</span> VAR1 <span style='color:#800000; font-weight:bold; '>!</span> <span style='color:#800000; font-weight:bold; '>SWAP</span> VAR1 <span style='color:#800000; font-weight:bold; '>@</span> <span style='color:#800000; font-weight:bold; '>-</span> <span style='color:#800000; font-weight:bold; '>SWAP</span> ;
</pre>
Хм, что не так?
пробуем
<pre style='color:#000000;background:#ffffff;'><span style='color:#800000; font-weight:bold; '>: </span><span style='color:#000000; background:#a8a800; '>fff</span> <span style='color:#800000; font-weight:bold; '>DUP</span> VAR1 <span style='color:#800000; font-weight:bold; '>@</span> <span style='color:#800000; font-weight:bold; '>+</span> VAR1 <span style='color:#800000; font-weight:bold; '>!</span> <span style='color:#800000; font-weight:bold; '>SWAP</span> VAR1 <span style='color:#800000; font-weight:bold; '>@</span> <span style='color:#800000; font-weight:bold; '>-</span> <span style='color:#800000; font-weight:bold; '>SWAP</span> ;
</pre>
Хм, что не так?
|
|
|
|
Добавлено: Ср июн 03, 2009 20:29 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
вопрос писал(а): не каждый редактор позволяет
http://tohtml.com/forth/ - не вижу проблем в "наше прогрессивное время"
[quote="вопрос"]не каждый редактор позволяет[/quote]
http://tohtml.com/forth/ - не вижу проблем в "наше прогрессивное время" :-)
|
|
|
|
Добавлено: Ср июн 03, 2009 20:11 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Цитата: код с подсветкой еще лучше - легко делается в редакторе(например в скайте) путем экспорта подсвеченного кода в хтмл. не каждый редактор позволяет
[quote]код с подсветкой еще лучше - легко делается в редакторе(например в скайте) путем экспорта подсвеченного кода в хтмл.[/quote]не каждый редактор позволяет
|
|
|
|
Добавлено: Вс май 31, 2009 14:35 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Все-таки код в теге [сode][/сode] читается легче, а код с подсветкой еще лучше - легко делается в редакторе(например в скайте) путем экспорта подсвеченного кода в хтмл.
Все-таки код в теге [сode][/сode] читается легче, а код с подсветкой еще лучше - легко делается в редакторе(например в скайте) путем экспорта подсвеченного кода в хтмл.
|
|
|
|
Добавлено: Вс май 31, 2009 13:36 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
операции с памятью
CODE @
mov S, T
ld.w T, S[0]
END-CODE
CODE W@
mov S, T
ld.uh T, S[0]
END-CODE
CODE C@
mov S, T
ld.ub T, S[0]
END-CODE
CODE !
pops
st.w T[0], S
popt
END-CODE
CODE W!
pops
st.h T[0], S
popt
END-CODE
CODE C!
pops
st.b T[0], S
popt
END-CODE
[size=150][color=green]операции с памятью[/color][/size]
CODE @
mov S, T
ld.w T, S[0]
END-CODE
CODE W@
mov S, T
ld.uh T, S[0]
END-CODE
CODE C@
mov S, T
ld.ub T, S[0]
END-CODE
CODE !
pops
st.w T[0], S
popt
END-CODE
CODE W!
pops
st.h T[0], S
popt
END-CODE
CODE C!
pops
st.b T[0], S
popt
END-CODE
|
|
|
|
Добавлено: Вс май 31, 2009 12:06 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
арифметико-логические операции одинарной точности
CODE +
pops
add T, S
END-CODE
CODE -
pops
sub T, S
END-CODE
CODE RSHIFT
pops
lsr T, T, S
END-CODE
CODE LSHIFT
pops
lsl T, T, S
END-CODE
CODE 2*
lsl T, 1
END-CODE
CODE 2/ \ с сохранением знака
asr T, 1
END-CODE
CODE *
pops
mul T, S
END-CODE
CODE UM*
ld.w S, SP[0]
mulu.d T, T, S
st.w SP[0], S
END-CODE
CODE MOD
CODE /
pops
divs T, S, T
END-CODE
mov T, S
END-CODE
CODE /MOD
ld.w S, SP[0]
divs T, S, T
st.w SP[0], S
END-CODE
CODE XOR
pops
eor T, S
END-CODE
CODE OR
pops
or T, S
END-CODE
CODE AND
pops
and T, S
END-CODE
CODE compare \ - служебное слово, используется для выставления флагов
pops
cp.w T, S
END-CODE
CODE =
compare
sr eq T
END-CODE
CODE <>
compare
sr ne T
END-CODE
CODE <
compare
sr lt T
END-CODE
CODE >
compare
sr gt T
END-CODE
CODE MIN
pops
min T, T, S
END-CODE
CODE MAX
pops
min T, T, S
END-CODE
CODE */MOD
CODE M*
ld.w S, SP[0]
muls.d T, T, S
st.w SP[0], S
END-CODE
CODE UM/MOD
( udh udl d -- o ch )
( sp[4] sp[0] d -- o ch )
st.w --RP, R0
mov R0, 33
mov S, T \ в s - делитель
eor T, T \ очищаем частное
n: l2
ld.w B, SP[4] \ берём старший байт делимого
sub B, B, S
\ сравниваем делитель и делимое, рельтат в делитель
st.w sp[4], B
sr cc B \ если переноса не было в регистре 1
lsl T, 1
or T, B \ если был перенос вдвигаем в частное 0, если нет 1
br cc n@ l4
ld.w B, SP[4]
add B, B, S
st.w sp[4], B
n: l4
eor B, B \ сбрасываем перенос
bld B, 0
ld.w B, SP[0] \ сдвигаем делимое
ror B
st.w SP[0], B
ld.w B, SP[4]
ror B
sub R0, 1
br eq n@ l2
pops
ld.w R0, SP++
END-CODE
END-CODE
ps. блок с */MOD сильно не тестировался. возможны ошибки
[size=150][color=green]арифметико-логические операции одинарной точности[/color][/size]
CODE +
pops
add T, S
END-CODE
CODE -
pops
sub T, S
END-CODE
CODE RSHIFT
pops
lsr T, T, S
END-CODE
CODE LSHIFT
pops
lsl T, T, S
END-CODE
CODE 2*
lsl T, 1
END-CODE
CODE 2/ \ с сохранением знака
asr T, 1
END-CODE
CODE *
pops
mul T, S
END-CODE
CODE UM*
ld.w S, SP[0]
mulu.d T, T, S
st.w SP[0], S
END-CODE
CODE MOD
CODE /
pops
divs T, S, T
END-CODE
mov T, S
END-CODE
CODE /MOD
ld.w S, SP[0]
divs T, S, T
st.w SP[0], S
END-CODE
CODE XOR
pops
eor T, S
END-CODE
CODE OR
pops
or T, S
END-CODE
CODE AND
pops
and T, S
END-CODE
CODE compare \ - служебное слово, используется для выставления флагов
pops
cp.w T, S
END-CODE
CODE =
compare
sr eq T
END-CODE
CODE <>
compare
sr ne T
END-CODE
CODE <
compare
sr lt T
END-CODE
CODE >
compare
sr gt T
END-CODE
CODE MIN
pops
min T, T, S
END-CODE
CODE MAX
pops
min T, T, S
END-CODE
CODE */MOD
CODE M*
ld.w S, SP[0]
muls.d T, T, S
st.w SP[0], S
END-CODE
CODE UM/MOD
( udh udl d -- o ch )
( sp[4] sp[0] d -- o ch )
st.w --RP, R0
mov R0, 33
mov S, T \ в s - делитель
eor T, T \ очищаем частное
n: l2
ld.w B, SP[4] \ берём старший байт делимого
sub B, B, S
\ сравниваем делитель и делимое, рельтат в делитель
st.w sp[4], B
sr cc B \ если переноса не было в регистре 1
lsl T, 1
or T, B \ если был перенос вдвигаем в частное 0, если нет 1
br cc n@ l4
ld.w B, SP[4]
add B, B, S
st.w sp[4], B
n: l4
eor B, B \ сбрасываем перенос
bld B, 0
ld.w B, SP[0] \ сдвигаем делимое
ror B
st.w SP[0], B
ld.w B, SP[4]
ror B
sub R0, 1
br eq n@ l2
pops
ld.w R0, SP++
END-CODE
END-CODE
ps. блок с */MOD сильно не тестировался. возможны ошибки
|
|
|
|
Добавлено: Вс май 31, 2009 11:07 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
аналогично организована работа со стеком возвратов и указателями стеков
стек возвратов и указатели стеков
\ работа со стеком возвратов
CODE R@
pusht
mov T, R0
END-CODE
CODE R>
st.w --RP, R0
mov R0, T
popt
END-CODE
CODE >R
pusht
mov T, R0
CODE popr
ld.w R0, RP++
END-CODE
END-CODE
CODE RDROP
popr
END-CODE
CODE 2>R
st.w --RP, R0
pops
st.w --RP, S
mov R0, T
popt
END-CODE
CODE 2R>
pusht
ld.w S, RP++
pushs
mov T, R0
ld.w R0, RP++
END-CODE
CODE 2RDROP
ld.w R0, RP++
ld.w R0, RP++
END-CODE
CODE R= \ (compare)
ld.w S, RP[0]
sub R0, 1
cp.w R0, S
END-CODE
\ Указатели стеков
CODE SP@
pusht
mov T, SP
END-CODE
CODE SP!
mov SP, T
popt
END-CODE
CODE RP@
pusht
mov T, RP
sub T, 4
END-CODE
CODE RP!
st.w --RP, R0
mov RP, T
popr
popt
END-CODE
аналогично организована работа со стеком возвратов и указателями стеков
[size=150][color=green] стек возвратов и указатели стеков[/color][/size]
\ работа со стеком возвратов
CODE R@
pusht
mov T, R0
END-CODE
CODE R>
st.w --RP, R0
mov R0, T
popt
END-CODE
CODE >R
pusht
mov T, R0
CODE popr
ld.w R0, RP++
END-CODE
END-CODE
CODE RDROP
popr
END-CODE
CODE 2>R
st.w --RP, R0
pops
st.w --RP, S
mov R0, T
popt
END-CODE
CODE 2R>
pusht
ld.w S, RP++
pushs
mov T, R0
ld.w R0, RP++
END-CODE
CODE 2RDROP
ld.w R0, RP++
ld.w R0, RP++
END-CODE
CODE R= \ (compare)
ld.w S, RP[0]
sub R0, 1
cp.w R0, S
END-CODE
\ Указатели стеков
CODE SP@
pusht
mov T, SP
END-CODE
CODE SP!
mov SP, T
popt
END-CODE
CODE RP@
pusht
mov T, RP
sub T, 4
END-CODE
CODE RP!
st.w --RP, R0
mov RP, T
popr
popt
END-CODE
|
|
|
|
Добавлено: Вс май 31, 2009 10:53 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
в продолжении статьи, по мере упорядочивания материала....
работа со стеком данных
основой для программной реализации является форт-ассемблер для avr32-го. все управляющие конструкции и способы построения целевого кода.
все слова данного раздела при компиляции кода работают как макроассемблерные вставки.
CODE DUP ( x -- x x )
CODE pusht
st.w --SP, T
END-CODE
END-CODE
CODE pushs
st.w --SP, S
END-CODE
CODE DROP ( x2 x1 -- x2 )
CODE popt
ld.w T, SP++
END-CODE
END-CODE
CODE NIP ( x1 x2 x3 -- x1 x3 )
CODE pops
ld.w S, SP++
END-CODE
END-CODE
CODE PICK ( ...x0 n -- x0 xn )
add S, SP, T << 2
ld.w T, S[0]
END-CODE
CODE TUCK
CODE SWAP ( x2 x1 -- x1 x2 )
xchg S, SP, T
mov T, S
END-CODE
CODE OVER ( x2 x1 -- x2 x1 x2 )
pusht
ld.w T, SP[4]
END-CODE
END-CODE
CODE ROT
pops
xchg B, SP, S
pusht
mov T, B
END-CODE
в продолжении статьи, по мере упорядочивания материала.... :-)
[size=150][color=green] работа со стеком данных [/color][/size]
основой для программной реализации является форт-ассемблер для avr32-го. все управляющие конструкции и способы построения целевого кода.
все слова данного раздела при компиляции кода работают как макроассемблерные вставки.
CODE DUP ( x -- x x )
CODE pusht
st.w --SP, T
END-CODE
END-CODE
CODE pushs
st.w --SP, S
END-CODE
CODE DROP ( x2 x1 -- x2 )
CODE popt
ld.w T, SP++
END-CODE
END-CODE
CODE NIP ( x1 x2 x3 -- x1 x3 )
CODE pops
ld.w S, SP++
END-CODE
END-CODE
CODE PICK ( ...x0 n -- x0 xn )
add S, SP, T << 2
ld.w T, S[0]
END-CODE
CODE TUCK
CODE SWAP ( x2 x1 -- x1 x2 )
xchg S, SP, T
mov T, S
END-CODE
CODE OVER ( x2 x1 -- x2 x1 x2 )
pusht
ld.w T, SP[4]
END-CODE
END-CODE
CODE ROT
pops
xchg B, SP, S
pusht
mov T, B
END-CODE
|
|
|
|
Добавлено: Вс май 31, 2009 10:44 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
diver писал(а): Линукс под этот проц портировали к тому же.
Если Вы про avr32linux.org - то там сырое всё и не обновлялось давненько многое. Человек, который-было рыпнулся с год назад всё это дело осваивать, матюгался страшно. Там "качели" получается по сложности: с одной стороны нужно что-то высокоуровневое, что бы нормально сложно-расчётные вещи писать + управления банками памяти, с другой - часто задачи не выходят за пределы привычных микроконтроллерно-встроенных... Получается ощущение "раздвоенности", "межнишевости" avr32... - всё из рассуждений знакомого. Именно он после года обещаний и энтузиазма опять решил на ARM7 вернуться с постепенным переходом под ARM9 - вот там - да Линукс ЖЕЛЕЗНО уже работает.
Единственно, под что знакомый видит применение адекватное для avr32 - это обработка звук и видео в плеерах. Да и то - пока ещё будут переписаны кодогенерирующие части компиляторов с учётом системы команд для выжимания максимума по обработке?...
[quote="diver"] Линукс под этот проц портировали к тому же.[/quote]
Если Вы про avr32linux.org - то там сырое всё и не обновлялось давненько многое. Человек, который-было рыпнулся с год назад всё это дело осваивать, матюгался страшно. Там "качели" получается по сложности: с одной стороны нужно что-то высокоуровневое, что бы нормально сложно-расчётные вещи писать + управления банками памяти, с другой - часто задачи не выходят за пределы привычных микроконтроллерно-встроенных... Получается ощущение "раздвоенности", "межнишевости" avr32... - всё из рассуждений знакомого. Именно он после года обещаний и энтузиазма опять решил на ARM7 вернуться с постепенным переходом под ARM9 - вот там - да Линукс ЖЕЛЕЗНО уже работает.
Единственно, под что знакомый видит применение адекватное для avr32 - это обработка звук и видео в плеерах. Да и то - пока ещё будут переписаны кодогенерирующие части компиляторов с учётом системы команд для выжимания максимума по обработке?...
|
|
|
|
Добавлено: Сб май 30, 2009 21:09 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
хотелось бы более подробной статьи по организации ФВМ и компилятора для AVR-a, в частности по кешированию данных в регистрах очень интересно, а так же хотелось бы посмотреть на примеры организации работы "с перегрузкой операций" то есть о том, как сделана работа с данными различной разрядности. Статья-то к сожалению лишь обзорная 8(
да, желательно указать дату и место публикации статьи...
хотелось бы более подробной статьи по организации ФВМ и компилятора для AVR-a, в частности по кешированию данных в регистрах очень интересно, а так же хотелось бы посмотреть на примеры организации работы "с перегрузкой операций" то есть о том, как сделана работа с данными различной разрядности. Статья-то к сожалению лишь обзорная 8(
да, желательно указать дату и место публикации статьи...
|
|
|
|
Добавлено: Вт май 26, 2009 17:40 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Тенденции рынка честно не смотрел и не интересовался. Просто привожу в некое подобие порядка начатые ранее работы, может что и выйдет .
Отличия в архитектуре на мой взгляд не должны уж так сильно сказываться. всё равно ж основная масса народа пишет на языках высокого уровня. Линукс под этот проц портировали к тому же. Проблема скорее в существующих уже наработках на армы, да стоимости разработки новых систем на этом ядре. периферия на авр32-м реально мощная и навороченная.
Тенденции рынка честно не смотрел и не интересовался. Просто привожу в некое подобие порядка начатые ранее работы, может что и выйдет :-).
Отличия в архитектуре на мой взгляд не должны уж так сильно сказываться. всё равно ж основная масса народа пишет на языках высокого уровня. Линукс под этот проц портировали к тому же. Проблема скорее в существующих уже наработках на армы, да стоимости разработки новых систем на этом ядре. периферия на авр32-м реально мощная и навороченная.
|
|
|
|
Добавлено: Вт май 26, 2009 13:53 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Ничего личного или подрывного! Что сорока на хвосте приносила!
По информации последних месяцев наблюдается массовый отход проектировщиков и производителей, попробовавших-было реализовать новые изделия на avr32. Народ опять на arm-ики возвращается.
Основная причина - "перетяжелённость" авр32 для выбранного сегмента рынка изделий. Отличия от привычных архитектур. Там ещё что-то с кодогенерирующими частями компиляторов связано (оптимизация), я не разбирался.
Ничего личного или подрывного! Что сорока на хвосте приносила! :)
По информации последних месяцев наблюдается массовый отход проектировщиков и производителей, попробовавших-было реализовать новые изделия на avr32. Народ опять на arm-ики возвращается.
Основная причина - "перетяжелённость" авр32 для выбранного сегмента рынка изделий. Отличия от привычных архитектур. Там ещё что-то с кодогенерирующими частями компиляторов связано (оптимизация), я не разбирался.
|
|
|
|
Добавлено: Вт май 26, 2009 12:43 |
|
|
|
|