This page describes the 8051 registers, but the whole site is pretty good too.
http://www.8052.com/tutbregs.phtml#R%20Registers
The MUL?xxx macro usually has 3 paramaters, the third one is the result of multiplying the first two.
For instance, if you had the following variables ...THEN ...Code:A VAR BYTE B VAR BYTE Y VAR BYTE Z VAR WORD
And, you can see that often it's easier to just jump out of ASM and handle it in Basic.Code:this ASM macro is same as this PBP statement --------------------- ------------------------- MUL?BBB _A, _B, _Y Y = A * B MUL?BBW _A, _B, _Z Z = A * B MUL?BWW _A, _Z, _Z Z = A * Z
------------------
If you do use the MUL? macros, there's something else you have to do to get them to work. Since, they are from the PBPPIC14.MAC file, they don't automaticaly get included with the project. So you have to Trick PBP into thinking it needs those macros.
This bit of code doesn't use any Program space since the ifdef keeps it from being compiled. But PBP sees the statements and includes any macros that are associated with them.But then, If you do it in Basic, you don't have to worry about it.Code:@ ifdef DoNotCompile ' Macro to include R0.LowByte = R0.LowByte * R0.LowByte ' MUL?BBB R0 = R0.LowByte * R0.LowByte ' MUL?BBW R0 = R0.LowByte * R0 ' MUL?BWW @ endif
Merry X-Mas,
Darrel




Bookmarks