Long in ASM an Variable übergeben ?

Allgemeine Themen rund um den Propeller Mikrocontroller und Elektronik
funkheld
Beiträge: 63
Registriert: Mi 24. Apr 2013, 18:44

Long in ASM an Variable übergeben ?

Beitrag von funkheld »

Hallo, guten Tag.
Ich kann mit dem ASM fast alles anstellen wenn es um die Pins 0-28 , Timer usw geht.

Aber eine Long Addieren und direkt an eine Variable übergeben klappt nicht.

Danke.
Gruss

Code: Alles auswählen

CON

  _10us = 1_000_000 /        10   ' Divisor for 10 us
  _1ms  = 1_000_000 /     1_000   ' Divisor for 1 ms
  _1s   = 1_000_000 / 1_000_000   ' Divisor for 1 s
  
  _clkmode = xtal1 + pll16x
  _clkfreq = 80_000_000

VAR

  long share 
 
OBJ

  serial        : "FullDuplexSerial"
  
PUB Main 

  serial.Start(31, 30, %0000, 19_200)                   

  cognew(@entry,0)

  waitcnt(cnt + (clkfreq /_1ms*100))

  serial.Dec(share)
  serial.Tx($0D)
  serial.Str(STRING("Fertig!"))

  waitcnt(cnt + (clkfreq /_1ms*100))                      
  
  serial.Stop                                           

DAT

entry
        ORG   
        add             pshare, #123456 ' wie kann ich hier auch 123456 addieren, klappt nicht.           
        wrlong          pshare,......       ' wie wird der Wert von pshare direkt an share übergeben?
            
pshare long  567678 
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: Long in ASM an Variable übergeben ?

Beitrag von PIC18F2550 »

Code: Alles auswählen

        add             pshare, #123456 ' wie kann ich hier auch 123456 addieren, klappt nicht.           
123456 ist zu groß für directwerte da stehen nur 9 bit zur verfügung.
Das musst Du in eine Variable packen.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
funkheld
Beiträge: 63
Registriert: Mi 24. Apr 2013, 18:44

Re: Long in ASM an Variable übergeben ?

Beitrag von funkheld »

Jup, danke.

Wie geht das in ASM, in eine Variable mit MOV oder Add oder... einen Wert größer 9 Bit zuzuweisen?
Wie kann ich eine Variable aus "VAR" etwas übergeben ohne dieses "par" in ASM?

Danke.
Gruss
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: Long in ASM an Variable übergeben ?

Beitrag von PIC18F2550 »

mittels constanten / berechnungen können Startwerrte Übergebenwerden.

Code: Alles auswählen

sync            long    $0200                   ' locked to %00 {%hv}

slow_pixels     long    $001FFFE0               ' 5/16/11 (LSB first)
slow            long    4 << 12 | 128           ' 4/128
hvis            long    1 << 12 | 8             ' 1/8

vcfg_norm       long    %0_01_0_00_000 << 23 | 2 << 9 | $0FF
vcfg_sync       long    %0_01_0_00_000 << 23 | 3 << 9 | %11

mask            long    $0FF << (2 * 8) | %11 << (3 * 8)

hide            long    $40000000               ' no colour fetch
do_v            long    pointer                 ' task index (vertical)
do_h            long    fetch_c                 ' task index (horizontal)
          
dst1            long    1 << 9                  ' dst +/-= 1
dst2            long    2 << 9                  ' dst +/-= 2

'                               V        H
'                               bbgggrrr_bbgggrrr
plte            long    NEGX | %00111111_11000000   ' default colour
vier            long    NEGX                        ' hidden

zero            long    $1F0                                ' par (dst only)
res_y           long    300                                 ' |
scrn            long    @scrnE-33                   '????? offset 33
font            long    @font1+16                   '????? offset 16
scan            long    height1

Wenn du nur einen Wert oder einen Zeiger auf ein Array übergeben willst (par) <<<< Zu deinem Problem

Code: Alles auswählen

CON
VAR
  long  array[größe]

PUB init
  cognew(@code, 0)   ' 0 kann durch einen wert $0..$FFFFFFFF  oder @array
Eine weitere möglichkeit währe vor dem Start des COG-Codes diesen zu Modifizieren.

Code: Alles auswählen

PUB Spinroutine
 scan := $100

DAT  ' COG-CODE
....
' Variabeln oder CODE
scan            long    height1
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
funkheld
Beiträge: 63
Registriert: Mi 24. Apr 2013, 18:44

Re: Long in ASM an Variable übergeben ?

Beitrag von funkheld »

Jup danke.
Das hat mir weitergeholfen.

Gruss
Adhore Khwaab
Beiträge: 1
Registriert: Mo 23. Feb 2015, 07:13

Re: Long in ASM an Variable übergeben ?

Beitrag von Adhore Khwaab »

Wie kann ich eine Variable aus "VAR" etwas übergeben ohne dieses "par" in ASM?
Arslan (hayeee Menno Sharam Aagyi)
Benutzeravatar
TuxFan
Beiträge: 1022
Registriert: So 6. Sep 2009, 11:18

Re: Long in ASM an Variable übergeben ?

Beitrag von TuxFan »

???????????
Dieser Satz :
Adhore Khwaab hat geschrieben:Wie kann ich eine Variable aus "VAR" etwas übergeben ohne dieses "par" in ASM?
kam hier :
funkheld hat geschrieben:Jup, danke.
Wie geht das in ASM, in eine Variable mit MOV oder Add oder... einen Wert größer 9 Bit zuzuweisen?
Wie kann ich eine Variable aus "VAR" etwas übergeben ohne dieses "par" in ASM?
Danke.
Gruss
schon mal vor.
Ähnliche Aufwallungen von Trolligkeit hatten wir ja schon in anderen Threads............nur der Name ist jetzt noch exotischer.........

Gruß
TuxFan
Wunder gibt es immer wieder.......
BorgKönig
Beiträge: 598
Registriert: So 24. Mai 2009, 11:24

Re: Long in ASM an Variable übergeben ?

Beitrag von BorgKönig »

durchaus möglch tuxfan... intern gibts aber keine auffälligkeiten... werden die bots "inteligenter"...? sobald da was rumzickt, schmeiss ich den raus...
Benutzeravatar
TuxFan
Beiträge: 1022
Registriert: So 6. Sep 2009, 11:18

Re: Long in ASM an Variable übergeben ?

Beitrag von TuxFan »

BorgKönig hat geschrieben:durchaus möglch tuxfan... intern gibts aber keine auffälligkeiten... werden die bots "inteligenter"...? sobald da was rumzickt, schmeiss ich den raus...
An anderer Stelle hatte ich mal erwähnt, daß dieser Bot ein humanoides Wesen sein könnte, dessen Adresse ich wegen seiner Internetumtriebigkeit kenne. Schade, daß er seine Intelligenz mit solchen Kindereien unterfordert.
Wunder gibt es immer wieder.......
Benutzeravatar
yeti
Beiträge: 2300
Registriert: Fr 27. Aug 2010, 14:48
Wohnort: Wrong Planet
Kontaktdaten:

Re: Long in ASM an Variable übergeben ?

Beitrag von yeti »

TuxFan hat geschrieben:An anderer Stelle hatte ich mal erwähnt, daß dieser Bot ein humanoides Wesen sein könnte, dessen Adresse ich wegen seiner Internetumtriebigkeit kenne. Schade, daß er seine Intelligenz mit solchen Kindereien unterfordert.
Ich musste dabei an...

Bild

...denken.
𝖂𝖎𝖗 𝖐𝖔̈𝖓𝖓𝖊𝖓 𝖆𝖑𝖑𝖊𝖘 𝖆𝖚𝖘𝖘𝖊𝖗 𝖎𝖓 𝕱𝖗𝖚̈𝖍𝖑𝖎𝖓𝖌, 𝕾𝖔𝖒𝖒𝖊𝖗, 𝕳𝖊𝖗𝖇𝖘𝖙 𝖚𝖓𝖉 𝖂𝖎𝖓𝖙𝖊𝖗! – 𝕯𝖊𝖚𝖙𝖘𝖈𝖍𝖑𝖆𝖓𝖉.
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"DNA is a four letter word!" — Yeti.
Antworten