Mikroelektronika MIKROE-442 데이터 시트

다운로드
페이지 726
mikroBasic PRO for dsPIC30/33 and PIC24
MikroElektronika
235
asm
   MOV _myvar, w0                      ; move myvar to W0
   nop
   MOV #6, W0                          ; move literal 6 to W0
   MOV W0, _myvar                      ; move contents of W0 to myvar
   MOV #lo_addr(_myvar), w1  ; retrieve low address word of _myvar and move it to W1 (0x2678 -> W1)
   MOV #hi_addr(_myvar), W1 ; retrieve high address word of _myvar and move it to W1 (0x0000 -> W1)
   MOV #lo_addr(_proc), W0 ; retrieve hi address byte of routine proc and move it to W0 (0x0001 -> W1)
   MOV #lo_addr(_msg), W0 ; retrieve low address word of constant msg and move it to W0 (0x3652 -> W1)
   MOV _myvar1+2, w0 ; accessing hi word of myvar1 variable and move it to W1 (0xABCD -> W1)
  end asm
end.
Asm code and SSA optimization
If asm code is mixed with the Basic code, keep in mind that the generated code can substantially differ when SSA 
optimization option is enabled or disabled. 
This is due to the fact that SSA optimization uses certain working registers to store routine parameters (W10-W13), 
rather than storing them onto the function frame.
Because of this, user must be very careful when writing asm code as existing values in the working registers used by 
SSA optimization can be overwritten. 
To avoid this, it is recommended that user includes desired asm code in a separate routine.
Directives
Directives are words of special significance which provide additional functionality regarding compilation and output.
The following directives are at your disposal:
 
- Compiler directives for conditional compilation, 
 
- Linker directives for object distribution in memory. 
Compiler Directives
Any line in source code with leading 
#
 is taken as a compiler directive. The initial 
#
 can be preceded or followed by 
whitespace (excluding new lines). The compiler directives are not case sensitive.
You can use conditional compilation to select particular sections of code to compile while excluding other sections. All 
compiler directives must be completed in the source file in which they begun.