I do not find anything wrong with the sdasstm8,
000008 72 C6 00 00 [ 4] 53 ld a, [_p]
00000C 72 CE 00 00 [ 5] 54 ldw x, [_p]
000010 91 CE 00 [ 5] 55 ldw y, [_p]
it seems all right.
Maybe the only way remains is make a piece of c code work, and make a contract.
在2014年09月29 17时47分,"remi"<r...@remi.lu>写道:
Hello
I will try to code it in C today ,
In the mean while, someone answered this:
https://my.st.com/public/STe2ecommunities/mcu/Lists/stm81/Flat.aspx?RootFolder=%2fpublic%2fSTe2ecommunities%2fmcu%2fLists%2fstm81%2fpointer%20problem%20%28sdcc%20assembler%29&FolderCTID=0x01200200770978C69A1141439FE559EB459D7580001E3853D9DB932A46A3FE4CD15CAB46FB&TopicsView=https%3A%2F%2Fmy%2Est%2Ecom%2Fpublic%2FSTe2ecommunities%2Fmcu%2FLists%2Fstm81%2FAllItems%2Easpx¤tviews=38
and I had changed my code to this:
00813C 72 CE 00 03 [ 5] 214 ldw X,[_charptr]
008140 CF 00 02 [ 2] 215 ldw _lcdchar,X
008143 CD 81 D5 [ 4] 216 call _lcdwritechar
008146 CE 00 03 [ 2] 217 ldw X, _charptr
008149 5C [ 2] 218 incw X
00814A CF 00 03 [ 2] 219 ldw _charptr, X
220
00814D CC 81 2A [ 2] 221 JP main_loop
regards
Le 2014-09-29 01:44, Bin Shi a écrit :
> Does your c code work? If so, what are the differences between the
> generated asm and your own asm ?
>
> r...@remi.lu编写:
>
>> hi,
>>
>> I tried following a c/asm generated code by sdcc , but now it only
>> prints the T , like the INCrementing doesnt do it:
>>
>>
>> any help ?, and as I said , when I use thing.w , the "thing"
>> register/variable is not recognised, it takes is as a new reference
>> ...
>> the .w to make show as a word, is not handeled i think
>>
>> ....
>> ;--------------------------------------------------------
>> .area INITIALIZED
>>
>> _charptr::
>> .ds 2
>> ;--------------------------------------------------------
>> ; Stack segment in internal ram
>> ;--------------------------------------------------------
>> .....
>> ;--------------------------------------------------------
>> .area INITIALIZED
>>
>> _charptr::
>> .ds 2
>> ;--------------------------------------------------------
>> ; Stack segment in internal ram
>>
>> mov _varOne, #'a'
>>
>> ldw X,__xinit__charptr ;#__string_0
>> ldw _charptr, X
>>
>>
>> main_loop:
>>
>>
>> LDW X, #0d50
>> CALL delay_m
>> CALL ledon
>>
>>
>> LDW X, #0d50
>> CALL delay_m
>> CALL ledoff
>>
>>
>> ld a,[__xinit__charptr] ; <---- not returning what is at that
>> address
>> ld _lcdchar,a
>> call _lcdwritechar
>> inc __xinit__charptr
>>
>> JP main_loop
>>
>> ....
>>
>>
>> .area CODE
>> __string_0:
>> .ascii "toto"
>> .db 0x00
>>
>> .area INITIALIZER
>> __xinit__charptr:
>> .dw __string_0
>>
>> .area CABS (ABS)
>>
>> ....
>>
>>
>>
>>
>>
>>
>> Le 26.09.2014 13:33, r...@remi.lu a écrit :
>>> Hello
>>>
>>> I tested your suggestion, then replaced the ADDW with INCW ... still
>>> not
>>> working
>>>
>>> this time, the carracter it self is incremented
>>> as if the syntax
>>>
>>> ldw X,[_charptr] doesnt return a pointer ...
>>>
>>>
>>> If you guys think this is not a bug, I can try forum@st and try to
>>> port
>>> their answers
>>> i am aware this mailing list is not dedicated to the STM8 assembly...
>>>
>>>
>>>
>>>
>>> ldw X,#string_0
>>> ldw _charptr, X
>>>
>>> main_loop:
>>>
>>> LDW X, #0d50
>>> CALL delay_m
>>> CALL ledon
>>>
>>> LDW X, #0d50
>>> CALL delay_m
>>> CALL ledoff
>>>
>>> ldw Y,[_charptr]
>>> ldw _lcdchar, Y
>>> call _lcdwritechar
>>> ldw Y, _charptr
>>> incw Y
>>> ldw _charptr, Y
>>>
>>> JP main_loop
>>>
>>>
>>>
>>>
>>> Le 26.09.2014 11:39, Bin Shi a écrit :
>>>> the _pointer is a 16-bit variable, and stm8 is big endian. you might
>>>> need
>>>>
>>>> ld y, _pointer
>>>> addw y, #1
>>>> ld _pointer, y
>>>>
>>>> to replace inc _pointer
>>>>
>>>> r...@remi.lu编写:
>>>>
>>>>>
>>>>>
>>>>> hello
>>>>>
>>>>> with this code i get printed : "t3333333...."
>>>>>
>>>>> you think the X register gets polluted by the delay fonction ?
>>>>>
>>>>> Regards
>>>>>
>>>>> Le 26.09.2014 04:11, Ben Shi a écrit :
>>>>>
>>>>>> I am not sure how your function _lcdwritechar works, but I guess
>>>>>> you
>>>>>> might need such kind of code,
>>>>>>
>>>>>> .area DATA
>>>>>>
>>>>>> _varOne:
>>>>>>
>>>>>> .ds 1
>>>>>>
>>>>>> _lcdchar:
>>>>>>
>>>>>> .ds 1
>>>>>>
>>>>>> _pointer:
>>>>>>
>>>>>> .ds 1
>>>>>>
>>>>>> .....
>>>>>>
>>>>>> ldw x, #_string_0
>>>>>>
>>>>>> ldw _pointer, x
>>>>>>
>>>>>> main_loop:
>>>>>>
>>>>>> LDW X, #0d50
>>>>>>
>>>>>> CALL delay_m
>>>>>>
>>>>>> CALL ledon
>>>>>>
>>>>>> LDW X, #0d50
>>>>>>
>>>>>> CALL delay_m
>>>>>>
>>>>>> CALL ledoff
>>>>>>
>>>>>> ldw x, [_pointer.w]
>>>>>>
>>>>>> ldw _lcdchar, x
>>>>>>
>>>>>> call _lcdwritechar
>>>>>>
>>>>>> inc _pointer
>>>>>>
>>>>>> JP main_loop
>>>>>>
>>>>>> ....
>>>>>>
>>>>>> .area CODE
>>>>>>
>>>>>> _string_0:
>>>>>>
>>>>>> .ascii "toto"
>>>>>>
>>>>>> .db 0x00
>>>>>>
>>>>>> First, the variable _pointer is initialized to point to _string_0;
>>>>>> second, in each iteration of the main loop, the content pointed by
>>>>>> _pointer is moved to _lcdchar; third, _pointer increases each
>>>>>> time.
>>>>>>
>>>>>> 在2014年09月25 23时32分,"remi"<r...@remi.lu>写道:
>>>>>>
>>>>>>> Hello
>>>>>>>
>>>>>>> I have spent a few years with MChip, I switched to stm8 recently.
>>>>>>>
>>>>>>> One of the reasons is pointer handeling (pic16 and 18) very
>>>>>>> limited
>>>>>>> ...
>>>>>>>
>>>>>>> and now, I am almost learning two things in the same time, STM8
>>>>>>> and
>>>>>>> sdasm .
>>>>>>>
>>>>>>> Can some one direct me a little on how pointers are beeing
>>>>>>>
>>>>>>> used in sdasstm8 ?
>>>>>>>
>>>>>>> in this snipet, i am trying to go trhu a string and print it ...
>>>>>>>
>>>>>>> no luck so far, only the "t" is printed .
>>>>>>>
>>>>>>> I have already went thru sdccman.pdf ... but it mostly talk about
>>>>>>> its C and inline assembly ,
>>>>>>>
>>>>>>> and stm8 axemples elsewhere are for other assemblers ... :)
>>>>>>>
>>>>>>> my goal , is to write 100% assembly code .
>>>>>>>
>>>>>>> Best regards
>>>>>>>
>>>>>>> .area DATA
>>>>>>> _varOne:
>>>>>>> .ds 1
>>>>>>> _lcdchar:
>>>>>>> .ds 1
>>>>>>>
>>>>>>> .....
>>>>>>>
>>>>>>> main_loop:
>>>>>>>
>>>>>>> LDW X, #0d50
>>>>>>> CALL delay_m
>>>>>>> CALL ledon
>>>>>>>
>>>>>>> LDW X, #0d50
>>>>>>> CALL delay_m
>>>>>>> CALL ledoff
>>>>>>>
>>>>>>> mov _lcdchar,string_0
>>>>>>> call _lcdwritechar
>>>>>>> inc [string_0]
>>>>>>>
>>>>>>> JP main_loop
>>>>>>>
>>>>>>> ....
>>>>>>>
>>>>>>> .area CODE
>>>>>>> string_0:
>>>>>>> .ascii "toto"
>>>>>>> .db 0x00
>>>>>>>
>>>>>>> .area INITIALIZER
>>>>>>> .area CABS (ABS)
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
>>>>>> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS
>>>>>> Reports
>>>>>> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White
>>>>>> paper
>>>>>> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog
>>>>>> Analyzer
>>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
>>>>>> [1]
>>>>>>
>>>>>> _______________________________________________
>>>>>> Sdcc-user mailing list
>>>>>> Sdcc-user@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/sdcc-user [2]
>>>>>
>>>>>
>>>>>
>>>>> Links:
>>>>> ------
>>>>> [1]
>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
>>>>> [2] https://lists.sourceforge.net/lists/listinfo/sdcc-user
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
>>>>> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS
>>>>> Reports
>>>>> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White
>>>>> paper
>>>>> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog
>>>>> Analyzer
>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
>>>>> _______________________________________________
>>>>> Sdcc-user mailing list
>>>>> Sdcc-user@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/sdcc-user
>>>> ------------------------------------------------------------------------------
>>>> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
>>>> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS
>>>> Reports
>>>> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
>>>> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>>>> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
>>>> _______________________________________________
>>>> Sdcc-user mailing list
>>>> Sdcc-user@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/sdcc-user
>>>
>>> ------------------------------------------------------------------------------
>>> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
>>> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS
>>> Reports
>>> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
>>> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>>> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
>>> _______________________________________________
>>> Sdcc-user mailing list
>>> Sdcc-user@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/sdcc-user
>>
>> ------------------------------------------------------------------------------
>> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
>> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS
>> Reports
>> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
>> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
>> _______________________________________________
>> Sdcc-user mailing list
>> Sdcc-user@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/sdcc-user
> ------------------------------------------------------------------------------
> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS
> Reports
> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> _______________________________________________
> Sdcc-user mailing list
> Sdcc-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sdcc-user
------------------------------------------------------------------------------
Slashdot TV. Videos for Nerds. Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user
------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user