Hi Mike,
I'm a bit out on the deep end here but I'll make a try....
MOVE?BB is not a PBP command which is why it's not in the PBP manual, it's an assembly macro used by the compiler to "build" the compiled version of your source code.
When you compile your PBP source code it's compiled into the type of ASM that you are referreing to. It's a series of assembler macros and you need to check the MPASM documentation (not the PBP manual) to find more details on macros in general.
Basically MOVE?BB is then "replaced" with the "real" assembly code of the MOVE?BB macro "call" (it's not a the same as a subroutine though) which in this case is stored in the PBPPIC18.LIB (if you're compiling for an PIC18 device). If you open that file you'll find a boatload of macros and the code for the MOVE?BB macro looks like this:I suspect the actual code of the macro is more in the line of what you're familiar with.Code:;**************************************************************** ;* MOVE?BB : Macro - Move BYTE variable into BYTE variable * ;* * ;* Input : Bin = BYTE variable * ;* Output : Bout = BYTE variable * ;* * ;* Notes : * ;**************************************************************** MOVE?BB macro Bin, Bout movff Bin, Bout endm
But really, if you want to include assembly (single lines or blocks of code) in your program you don't need to worry about these macros (but you CAN use them if you want to) just write your ASM the way you're used to with movff, btfsc, bsf and so on.
Other compilers hides this stuff completely for you, having their libraries closed, but with PBP everything is there for you to investigate if you want to - but there's generally no need to worry about them. Again, if you want to inline assembly just code away in the same way you're used to.
Hopefully someone will jump in correct me if I'm way off.
/Henrik.
Bookmarks