Отговори на тема  [ 47 мнения ]  Отиди на страница 1, 2, 3, 4  Следваща
C за PIC18, използващо хардуерното му умножение? 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение C за PIC18, използващо хардуерното му умножение?
...после що съм ползвал 32 битници където трябва и където не... Ако пуснат 5 волтов, тотално ще забравя за всичко друго...

Та - на въпроса: Има ли някакъв компилатор някъде, дето да ползва това хардуерно умножеине за нещо повече от 8 битови числа? И да работи под MPLAB X?

XC8, последна версия, използва хардуерно умножение само за 8 битови числа без знак. Hi-Tеch C18 9.80 - пак така. За останалото си вика подпрограмка, дето го прави с цикли като на PIC16.

Вече окончателно се убеждавам че във всички фирми, започващи с "micro" изначално има нещо недоклатено. :) Сега го правя по изкуствен начин, умножавайки байт по байт и събирайки. Трябва ми умножение 16 x 16 бита, резултата от което се записва в 32 битова променлива. Не ми е проблем и така, ама кода за едно мижаво умножение е 6-7 реда, и ако го чета след някоя и друга година, има да се дзверя доста.


Сря Яну 30, 2013 10:13 pm
Профил ICQ
Ранг: Професионалист
Ранг: Професионалист
Аватар

Регистриран на: Сря Май 11, 2005 3:47 pm
Мнения: 534
Мнение Re: C за PIC18, използващо хардуерното му умножение?
С константа ли умножаваш? Ако да, използвай Хорнер метода на асемблер, събиране-изваждане-шифтване ... ако не го ползваш вече :)!


Чет Яну 31, 2013 3:22 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: C за PIC18, използващо хардуерното му умножение?
FiTTiLA написа:
С константа ли умножаваш? Ако да, използвай Хорнер метода на асемблер, събиране-изваждане-шифтване ... ако не го ползваш вече :)!


С константа умножавам, 16 битова. И е голямо число, примерно 38342.

С шифтване и баба знае, ама тогава за какво да ползвам PIC18? То хардуерното му умножение е съществената разлика с 16-ките.

Сега го правя с четири 8 битови умножения и 4 събирания. Ама просто умножение се мъдри на 6-7 реда, ползват се буферни променливи и прочие. Ако си е вградено в компилатора ще е доста по-оптимизирано, а в сорса ще си е просто c=a*b.

На асемблер е лесно, ама да уча асемблер за 8 битов PIC - айде мерси. Въпроса е че микрочЕп пак са се изсрали на метеното - сътворили микроконтролер с хардуерно умножение за един цикъл, пък не го ползват. И едно умножение 16x16 отива примерно 100 и повече цикъла.

dsPIC30 например си има макроси, дето му ползват дори 30 битовия (или 40 беше) акумулатор, а за 18-ката - нищо.


Чет Яну 31, 2013 3:36 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: C за PIC18, използващо хардуерното му умножение?
Е чак да му "учиш асемблера" за да си направиш умножението едва ли ще ти се
наложи де (ама и цял ден като нищо може да ти отиде да се справиш).
Инак 16*16->32 умножение ако нямаш наготово какво друго ти остава освен както
си го направил с 8*8->16 но на асемблер. Все пак са само няколко реда, десетки
реда да са. 1*1->2 ("със събиране и шифтване", което е същото като 8*8-> 16
и останалите де) ще е много по-неефикасно по всяка вероятност (е, зависи колко
време цъка 8*8, на баба 9-ка (6809) на времето това май беше 11 цикъла... Ама тя
поне си имаше нормален стек и с офсети от него та ставаше лесно).
Моят плач е най-вече с делението, почти за всяко ядро ми се е налагало да го
правя (дори за power, 32 битовите нямат 64:32 -> 32(или overflow) като CPU32...
Всъщност за CPU32 май не се наложи, за HC11 не помня, май не - там имаше
и fractional divide ли някакво беше та ставаше каквото ми е трябвало май.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пет Фев 01, 2013 1:38 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: C за PIC18, използващо хардуерното му умножение?
8*8->16 хардуерното умножение на PIC18 е един цикъл. 4 умножения със все събиранията, написани на C са 30-ина цикъла. На асемблер може и по-малко.

...ама, не мога бре човек. Някога пишех тонове асемблер за 80386. За 8051 някак пак се справях, ама в пикльовците всичко ми е наопъки. А и да уча асемблер за 8, 16 и 32 битови пикльовци, дето нямат нищо общо, пак не ми е никак комфортно. Сложи и RX серията на Renesas, с която също се заигравам, и мазалото става пълно.

Конкретното нещо, за което ползвам 18-ката, не е критично по отношение на това. Предполагаемо и с обикновените библиотеки, дето правят същото за примерно 200 цикъла, пак няма да има грижи. Просто питах дали има някакъв вариант. Дали някое от всичките C-та за тоя процесор поддържа това. И да вика подпрограма не ми пречи, стига подпрограмата да ползва хардуерното умножение.


Пет Фев 01, 2013 2:13 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: C за PIC18, използващо хардуерното му умножение?
Е щом не ти трябва ясно, че няма цял ден да го мъчиш. Инак едва ли би те озорило,
щом на кривия x86 асемблер си писал коя е тая кривотия дето ще те уплаши :D :D .

Специално за няколкото реда дето ти трябват ти е ясно, че не трябва да му
свикваш на дадения асемблер, би ги написал с книжката в ръцете (правил съм
го за x86 за не много по-сложно нещо, стана за час-два - преди много
години, това ми е писането за x86 :D :D ).

Ама за едното по-добро чувство ако имам работещ код не бих го пипал на твое място
и аз. Тогава, на времето, като писах това за x86, един се беше уплел дни наред
да изшифти няколко бита към един четворен DAC, мажеше нещо на някакво турбо-C
май беше (не то беше проблемът разбира се) та на края ми писна и го разплетох
набързо; после той някак успя поне асемблерския сорс да навре в C сорса си,
за толкова му стигна акъла... :D . А аз май го пишех на ръка и го дебъчех в
някакъв AFD дебъгер май дето имаше. Баси колко години от тогава, над 20.
Сякаш беше миналата седмица.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пет Фев 01, 2013 3:22 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: C за PIC18, използващо хардуерното му умножение?
За x86 съм писал DOS extender за защитен режим, бях изкормил и едно C и му бях подменил библиотеките да ползва моя Extender. Вървеше и под Windows 95. Бях писал библиотеки за 3D графики, текстури, шейдинг и прочие полюции. Всичко на асемблер. И това докато не изкараха първите версии на SIMD разширенията. Тогава се и обезсмисли всякакво ровене в тая посока, щото на мода дойде хардуерното ускорение.

Та, оня асемблер ми е по-логичен. Имаш 8+4 регистъра, някои със специфично предназначение, и толкоз. И командите прости - MOV AX, BX, означава "сложи съдържанието на BX в AX". И всичките в тоя вид - с 2 операнда (с малки изключения). Тук всичко е обратно - там jump, тука branch. Тук и NOP-ове трябва да се оставят тук-там. Там имаше shift-ове по колкото се сетиш позиции с една инструкция, тука - не. И все такива.

Там имаше и делене 16/8 ->8, 32/16 -> 16, 64/32 ->32.

Незнам. Сигурно ако много ми дотрябва ще се счупя да го понауча. Ама ми е изчекнат и туй то. На PIC32-ката е малко по-човешки като че ли. На RX-а хич не съм го и гледал още. Но помня че на 8051 общо взето се справях без особен зор за дребни неща.

Най-вероятно съм поръждясал, и додето не ми дойде съвсем на зор, трудно ще се счупя.


Пет Фев 01, 2013 3:40 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 11:53 pm
Мнения: 4582
Местоположение: Brussels / Пловдив
Мнение Re: C за PIC18, използващо хардуерното му умножение?
tgi написа:
... А аз май го пишех на ръка и го дебъчех в
някакъв AFD дебъгер май дето имаше. Баси колко години от тогава, над 20.
Сякаш беше миналата седмица.

В AFD май си имаше вграден асемблер ... колко нощи само с дебъгвал с него ... игрици, пък и не само ... накрая си написах сам дебъгер, супер стелт и запазваше графичните режими като хората ... извинявам се за оффтопика :D

_________________
Мразя да мразя ...


Пет Фев 01, 2013 4:37 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение Re: C за PIC18, използващо хардуерното му умножение?
MPLABX 1.60, MCC18 v3.43, Windows/Linux

Код:
#include <p18cxxx.h>
#include "Integers.h"
#include "fuses.h"

void main(void)   {
volatile near int a,b;
volatile near long c;
   a = 38342;
   b = -30342;
   c = a * b;
   while(1);
}




Project option: C18(Global Options)/MCC18/Default Storage Class: Static
Small memory model

Код:
!void main(void)   {
!volatile near int a,b;
!volatile near long c;
!   a = 38342;
0xA6: MOVLW 0xC6
0xA8: MOVWF a, ACCESS
0xAA: MOVLW 0x95
0xAC: MOVWF 0x1, ACCESS
!   b = -30342;
0xAE: MOVLW 0x7A
0xB0: MOVWF b, ACCESS
0xB2: MOVLW 0x89
0xB4: MOVWF 0x3, ACCESS
!   c = a * b;
0xB6: MOVF b, W, ACCESS
0xB8: MULWF a, ACCESS
0xBA: MOVFF PRODL, c
0xBC: NOP
0xBE: MOVFF PRODH, 0x5
0xC0: NOP
0xC2: MULWF 0x1, ACCESS
0xC4: MOVF PRODL, W, ACCESS
0xC6: ADDWF 0x5, F, ACCESS
0xC8: MOVF 0x3, W, ACCESS
0xCA: MULWF a, ACCESS
0xCC: MOVF PRODL, W, ACCESS
0xCE: ADDWF 0x5, F, ACCESS
0xD0: CLRF 0x6, ACCESS
0xD2: CLRF 0x7, ACCESS
0xD4: BTFSS 0x5, 7, ACCESS
0xD6: BRA 0xDC
0xD8: SETF 0x6, ACCESS
0xDA: SETF 0x7, ACCESS
!   while(1);
0xDC: BRA 0xDC



Project option: C18(Global Options)/MCC18/Default Storage Class: Static
Large memory model

Код:
!void main(void)   {
!volatile int a,b;
!volatile long c;
!   a = 38342;
0xA6: MOVLB 0xE
0xA8: MOVLW 0xC6
0xAA: MOVWF 0xA, BANKED
0xAC: MOVLW 0x95
0xAE: MOVWF 0xB, BANKED
!   b = -30342;
0xB0: MOVLW 0x7A
0xB2: MOVWF 0xC, BANKED
0xB4: MOVLW 0x89
0xB6: MOVWF 0xD, BANKED
!   c = a * b;
0xB8: MOVF 0xC, W, BANKED
0xBA: MULWF 0xA, BANKED
0xBC: MOVFF PRODL, c
0xBE: NOP
0xC0: MOVFF PRODH, 0xE0F
0xC2: NOP
0xC4: MULWF 0xB, BANKED
0xC6: MOVF PRODL, W, ACCESS
0xC8: ADDWF 0xF, F, BANKED
0xCA: MOVF 0xD, W, BANKED
0xCC: MULWF 0xA, BANKED
0xCE: MOVF PRODL, W, ACCESS
0xD0: ADDWF 0xF, F, BANKED
0xD2: CLRF 0x10, BANKED
0xD4: CLRF 0x11, BANKED
0xD6: BTFSS 0xF, 7, BANKED
0xD8: BRA 0xDE
0xDA: SETF 0x10, BANKED
0xDC: SETF 0x11, BANKED
!   while(1);
0xDE: BRA 0xDE


Project option: C18(Global Options)/MCC18/Default Storage Class: Auto
Small memory model

Код:
!void main(void)   {
0xA6: MOVFF FSR2L, POSTINC1
0xA8: NOP
0xAA: MOVFF FSR1L, FSR2L
0xAC: NOP
!volatile int a,b;
!volatile long c;
!   a = 38342;
0xAE: MOVFF FSR1L, FSR0L
0xB0: NOP
0xB2: MOVFF FSR2H, FSR0H
0xB4: NOP
0xB6: MOVLW 0xC6
0xB8: MOVWF POSTINC0, ACCESS
0xBA: MOVLW 0x95
0xBC: MOVWF POSTDEC0, ACCESS
!   b = -30342;
0xBE: MOVF FSR2L, W, ACCESS
0xC0: ADDLW 0x2
0xC2: MOVWF FSR0L, ACCESS
0xC4: MOVFF FSR2H, FSR0H
0xC6: NOP
0xC8: MOVLW 0x7A
0xCA: MOVWF POSTINC0, ACCESS
0xCC: MOVLW 0x89
0xCE: MOVWF POSTDEC0, ACCESS
!   c = a * b;
0xD0: MOVFF FSR2L, FSR0L
0xD2: NOP
0xD4: MOVFF FSR2H, FSR0H
0xD6: NOP
0xD8: MOVFF POSTINC0, c
0xDA: NOP
0xDC: MOVFF INDF0, 0x5
0xDE: NOP
0xE0: MOVF FSR2L, W, ACCESS
0xE2: ADDLW 0x2
0xE4: MOVWF FSR0L, ACCESS
0xE6: MOVFF FSR2H, FSR0H
0xE8: NOP
0xEA: MOVFF POSTINC0, 0x6
0xEC: NOP
0xEE: MOVFF INDF0, 0x7
0xF0: NOP
0xF2: MOVF 0x6, W, ACCESS
0xF4: MULWF c, ACCESS
0xF6: MOVFF PRODL, __tmp_0
0xF8: NOP
0xFA: MOVFF PRODH, 0x1
0xFC: NOP
0xFE: MULWF 0x5, ACCESS
0x100: MOVF PRODL, W, ACCESS
0x102: ADDWF 0x1, F, ACCESS
0x104: MOVF 0x7, W, ACCESS
0x106: MULWF c, ACCESS
0x108: MOVF PRODL, W, ACCESS
0x10A: ADDWF 0x1, F, ACCESS
0x10C: CLRF b, ACCESS
0x10E: CLRF 0x3, ACCESS
0x110: BTFSS 0x1, 7, ACCESS
0x112: BRA 0x118
0x114: SETF b, ACCESS
0x116: SETF 0x3, ACCESS
0x118: MOVF FSR2L, W, ACCESS
0x11A: ADDLW 0x4
0x11C: MOVWF FSR0L, ACCESS
0x11E: MOVFF FSR2H, FSR0H
0x120: NOP
0x122: MOVFF __tmp_0, POSTINC0
0x124: NOP
0x126: MOVFF 0x1, POSTINC0
0x128: NOP
0x12A: MOVFF b, POSTINC0
0x12C: NOP
0x12E: MOVFF 0x3, POSTINC0
0x130: NOP
!   while(1);
0x132: BRA 0x132


Project option: C18(Global Options)/MCC18/Default Storage Class: Auto
Large memory model
Код:
!void main(void)   {
0xA6: MOVFF FSR2L, POSTINC1
0xA8: NOP
0xAA: MOVFF FSR1L, FSR2L
0xAC: NOP
0xAE: MOVLW 0x8
0xB0: ADDWF FSR1L, F, ACCESS
!volatile int a,b;
!volatile long c;
!   a = 38342;
0xB2: MOVLW 0xC6
0xB4: MOVWF POSTINC2, ACCESS
0xB6: MOVLW 0x95
0xB8: MOVWF POSTDEC2, ACCESS
!   b = -30342;
0xBA: MOVLW 0x7A
0xBC: MOVWF PRODL, ACCESS
0xBE: MOVLW 0x2
0xC0: MOVFF PRODL, PLUSW2
0xC2: NOP
0xC4: MOVLW 0x89
0xC6: MOVWF PRODL, ACCESS
0xC8: MOVLW 0x3
0xCA: MOVFF PRODL, PLUSW2
0xCC: NOP
!   c = a * b;
0xCE: MOVLW 0x2
0xD0: MOVFF PLUSW2, 0x8
0xD2: NOP
0xD4: MOVLW 0x3
0xD6: MOVFF PLUSW2, 0x9
0xD8: NOP
0xDA: MOVFF POSTINC2, 0xD
0xDC: NOP
0xDE: MOVFF POSTDEC2, 0xE
0xE0: NOP
0xE2: CALL 0x114, 0
0xE4: NOP
0xE6: MOVFF 0x6, __tmp_0
0xE8: NOP
0xEA: MOVFF 0x7, 0x15
0xEC: NOP
0xEE: CLRF 0x16, ACCESS
0xF0: CLRF 0x17, ACCESS
0xF2: BTFSS 0x15, 7, ACCESS
0xF4: BRA 0xFA
0xF6: SETF 0x16, ACCESS
0xF8: SETF 0x17, ACCESS
0xFA: MOVLW 0x4
0xFC: MOVFF __tmp_0, PLUSW2
0xFE: NOP
0x100: MOVLW 0x5
0x102: MOVFF 0x15, PLUSW2
0x104: NOP
0x106: MOVLW 0x6
0x108: MOVFF 0x16, PLUSW2
0x10A: NOP
0x10C: MOVLW 0x7
0x10E: MOVFF 0x17, PLUSW2
0x110: NOP
!   while(1);
0x112: BRA 0x112


Все пак не очаквай, че като има хардуерен множител ще умножи две 16-битови числа с няколко инструкции, прочети какво вършат MULLW и MULWF и ще разбреш защо е така.

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Последна промяна на Пет Фев 01, 2013 6:38 am, променена общо 2 пъти



Пет Фев 01, 2013 6:21 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: C за PIC18, използващо хардуерното му умножение?
sparkybg написа:
...
Най-вероятно съм поръждясал, и додето не ми дойде съвсем на зор, трудно ще се счупя.


Е, тоя вид ръжда се смива за нула време при нужда, нищо ти няма.

Но да се връща назад човек по езиците към по-криви такива е наистина болезнено,
дори да не става дума за пик асемблер. Тоя за 32 е MIPS който по принцип е добра
архитектура но пък наличните RISC асемблери са пълна трагедия като мнемоники,
x86 дори е доста по-човешки (а той по моите критерии е неизползваемо крив,
аз съм разглезен на 68k и сега на VPA). Та нямаш много опции де, аз VPA-то на практика не го
предлагам а и го има само за power така или иначе.

Ама за едното умножение да си съшиеш няма да имаш нужда и ръждата да махаш,
това имах предвид.

palavrov написа:
tgi написа:
... А аз май го пишех на ръка и го дебъчех в
някакъв AFD дебъгер май дето имаше. Баси колко години от тогава, над 20.
Сякаш беше миналата седмица.

В AFD май си имаше вграден асемблер ... колко нощи само с дебъгвал с него ... игрици, пък и не само ... накрая си написах сам дебъгер, супер стелт и запазваше графичните режими като хората ... извинявам се за оффтопика :D


Е аз асемблирах с тоя AFD-чавия асемблер де, не "на ръка". То стана и доста бързо, все пак
колко е да нашифтиш 4 DAC-а.
На хартия на ръка съм асемблирал само за 6800 и малко за 6809.

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пет Фев 01, 2013 6:23 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение Re: C за PIC18, използващо хардуерното му умножение?
tgi написа:
Тоя за 32 е MIPS който по принцип е добра
архитектура но пък наличните RISC асемблери са пълна трагедия като мнемоники,
x86 дори е доста по-човешки (а той по моите критерии е неизползваемо крив,
аз съм разглезен на 68k и сега на VPA).


На MIPS мнемониката на асемблера им е най-малкия проблем - винаги можеш да си я замениш с твоя си посредством макроси. По скоро проблема е, че в почти всяка инструкция адресацията се задава с отместване, което явно трябва да се зададе, дори и да е 0. Поне мен това страшно ме обърква и в един момент реших, че не си заслужава да им уча асемблера. Виж на dsPIC30/33 го научих лесно, щото е доста сносно направен.

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Пет Фев 01, 2013 9:05 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: C за PIC18, използващо хардуерното му умножение?
¶ написа:
Все пак не очаквай, че като има хардуерен множител ще умножи две 16-битови числа с няколко инструкции, прочети какво вършат MULLW и MULWF и ще разбреш защо е така.


Мерси. Четох какво вършат. То ясно че освен умноженията трябва и друго, ама едно е 230 цикъла, друго е 30.

Сега ще видя от къде да сваля някое от тия C-та.


Пет Фев 01, 2013 11:06 am
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Окт 06, 2005 2:06 pm
Мнения: 194
Местоположение: Sofia
Мнение Re: C за PIC18, използващо хардуерното му умножение?
Компилаторите ги има тук:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023073
а ако има нужда от хапчета:
http://www.sonsivri.to/forum/index.php


Пет Фев 01, 2013 12:32 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Авг 23, 2005 12:02 pm
Мнения: 3070
Местоположение: София
Мнение Re: C за PIC18, използващо хардуерното му умножение?
Свалих и инсталирах квото трябва вече. От рутракера.


Пет Фев 01, 2013 12:47 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юни 10, 2007 2:22 pm
Мнения: 6492
Местоположение: София
Мнение Re: C за PIC18, използващо хардуерното му умножение?
¶ написа:
tgi написа:
Тоя за 32 е MIPS който по принцип е добра
архитектура но пък наличните RISC асемблери са пълна трагедия като мнемоники,
x86 дори е доста по-човешки (а той по моите критерии е неизползваемо крив,
аз съм разглезен на 68k и сега на VPA).


На MIPS мнемониката на асемблера им е най-малкия проблем - винаги можеш да си я замениш с твоя си посредством макроси. По скоро проблема е, че в почти всяка инструкция адресацията се задава с отместване, което явно трябва да се зададе, дори и да е 0. Поне мен това страшно ме обърква и в един момент реших, че не си заслужава да им уча асемблера. Виж на dsPIC30/33 го научих лесно, щото е доста сносно направен.


Да, аз като казах мнемоники имах предвид целия синтаксис. То и за power е същата работа,
не може човек да пише много на такова нещо. Освен всичко друго - примерно различни имена
на опкодове за същата операция с различен размер вместо .b, .w, .l и т.н. - нали са и
load/store системи та операциите са само между регистри, и това да го описва човек
идва вповече. Адресациите и те - нали са малко на брой, намацали ги в различни по
име опкодове и айде. VPA-то се справя с всичко това - ама ми отне почти година
да го направя и да прехвърля кода за cpu32 да тръгне на power, баси и оттогава има
над 10 години, кво става бе. Днес сме тук утре пак ни няма, това е положението :D :D .

_________________
-------------------
www.tgi-sci.com
-------------------
http://www.flickr.com/photos/didi_tgi/


Пет Фев 01, 2013 1:55 pm
Профил WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 47 мнения ]  Отиди на страница 1, 2, 3, 4  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 0 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни