| | Re: BrickOS Assembler
|
| (...) I need to access elements of a 2d array. I don't think this is an option for that. Nevertheless, could you post code that demonstrates this? (...) How do I do that? (...) ??? (...) Hmm... this sounds more like what I'm trying to do. Someone? (...) (21 years ago, 18-Jan-04, to lugnet.robotics.rcx.legos)
| | | | Re: BrickOS Assembler
|
| (...) Hi Mike, Check out the source for memcpy.c in the C library. It's not immediately clear, but the directives at the end of the __asm__ section beginning with "r" associate the %n macros with the given variables. I'm not sure of the exact syntax (...) (21 years ago, 18-Jan-04, to lugnet.robotics.rcx.legos)
| | | | Re: BrickOS Assembler
|
| (...) I recommend compiling with the -gstabs+ option (by modifying the makefile). After your .lx file is generated use "h8300-hms-objdump --disassemble-all --source > my.lst" to get a disassembled file with the C source intermixed.into the file (...) (21 years ago, 19-Jan-04, to lugnet.robotics.rcx.legos)
| | | | Re: BrickOS Assembler
|
| (...) In rethinking I think that compiling with the -S option will do what you want. It should create a file with a .s suffix. -S makes the compiler compile, but not assemble. Kevin "YOU ARE A GENIUS!!!!!! you can put that in your sig file!!!" Chris (...) (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)
| | | | 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
|
| (...) 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
|
| (...) 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
|
| (...) 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)
| |