|
| | Re: BrickOS Assembler
|
| (...) Volatile tells the compiler that should assume the value can change without the compiler's knowledge. So yes, it gets reloaded every time. (...) To find this stuff, you need to read through documentation for GCC. It has been a few years since (...) (21 years ago, 21-Jan-04, to lugnet.robotics.rcx.legos)
| | | | Re: BrickOS Assembler
|
| (...) Oh, I see. That's nifty. So a 'volatile' keyword ensures that it's reloaded every time? (...) Which doc is this? The only ones I have are the BrickOS command reference (it's a shorter HTML one), and the software manual from Hitachi. (...) (...) (21 years ago, 20-Jan-04, to lugnet.robotics.rcx.legos)
| | | | Re: BrickOS Assembler
|
| (...) Glad to help! (...) However, it *does* work for bytes... See the program below. In your example program, you declared the "total" variable as an unsigned short (which is a 16-bit word), but accessed it using an 8-bit move instruction. Instead, (...) (21 years ago, 20-Jan-04, to lugnet.robotics.rcx.legos)
| | | | Re: BrickOS Assembler
|
| (...) PERFECT. That was exactly what I was looking for. Clearly, the @_variablename method only works for words and not bytes. This had been my problem. Thanks very much. And thanks to everyone else who contributed too... I'm just a sucker for the (...) (21 years ago, 19-Jan-04, to lugnet.robotics.rcx.legos)
| | | | Re: BrickOS Assembler
|
| (...) One more answer... :-) Mark #include <unistd.h> #include <conio.h> int x = 10; int y = 5; int z; int main() { __asm__(" mov @_x,r0 mov @_y,r1 add r1,r0 mov r0,@_z "); lcd_int(z); msleep(5); return 0; } (21 years ago, 19-Jan-04, to lugnet.robotics.rcx.legos)
| |