To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcx.legosOpen lugnet.robotics.rcx.legos in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / legOS / 3636
  BrickOS Assembler
 
Okay, I'm working on a proc in ASM, and I need help with using MOV to move stuff back and forth between memory and registers. I have the following (very simple) program working, but I can't for the life of me get the MOV to work. I've got the (...) (20 years ago, 17-Jan-04, to lugnet.robotics.rcx.legos)
 
  Re: BrickOS Assembler
 
Hi, Michael. I had some trouble with getting variables into registers, as well. I can think of three ways: 1) Pass the variable to a function - the first function argument seems to be r0. You can easily experiment with this by inspecting the (...) (20 years ago, 18-Jan-04, to lugnet.robotics.rcx.legos)
 
  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? (...) (20 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 (...) (20 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 (...) (20 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 (...) (20 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; } (20 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 (...) (20 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, (...) (20 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. (...) (...) (20 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 (...) (20 years ago, 21-Jan-04, to lugnet.robotics.rcx.legos)

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR