Tool News
 
 
 

Tool News

Products Info
Downloads
Tools FAQs
MESC TOOL NEWS: MESCT-AS79-990901D

NC79WA, AS79 Precaution

Please take note of the following problems in using assembler AS79 for the 7900 series of microcomputers.


  1. Versions Concerned
    All the versions of AS79 are concerned with these problems, as well as those included with C compiler NC79WA (with assembler and integrated development environment) for the 7900 series of microcomputers.


  2. Problem on Assembler Directive Command ".ALIGN 2"

    2.1 Description
    If the directive ".ALIGN 2" is executed, an incorrect value of address correction(*) may be supplied.

    *Address Correction
    • Two NOP instructions are inserted when the section type is CODE or ROMDATA.
    • The address value is incremented by 2 when the section type is DATA.
    • When an address value is even, it is not corrected.


    2.2 Conditions
    This problem occurs if the following conditions are satisfied:

    • The directive ".ALIGN 2" is executed.
    • The address of executing the directive ".ALIGN 2" is at an even address.
         [Example of Descriptions Causing Problem]
          -----------------------------------------------------------------
         |     .section  ram,data
         |     .org  100h
         |     label1:  .blkb 2
         |     .align 2
         |     label2:  .blkb 1  ; Value 102h would be indicated normally,
         |                       ; but the next even value 104h is used 
         |                       ; as the correction value.
          -----------------------------------------------------------------
    

    2.3 Workaround
    When correcting address, specify it by directive command ".SECTION".
         [ Modified Example]
          -----------------------------------------------------------------
         |     .section  ram,data
         |     .org  100h
         |     label1:  .blkb 2
         |     .section  ram,data,align=2 ;Correction by defining the section
         |     label2:  .blkb 1
         |
          -----------------------------------------------------------------
    

  3. Problem on Addressing Mode Specifier "DT+:", "DP+:", and "DP[0|1|2|3]+:"

    3.1 Description
    If either of the following conditions is satisfied, the offset value of an operand is calculated at linking operation even when any of the above specifiers is described:

    (1) Any of the above specifiers is described using the declared value of DT or DP that is within a range not determined at assembling.[Example of Descriptions Causing Problem(1)].
    (2) A value that will not be determined at assembling is set into an operand in which any of the above specifiers is described.[Example of Descriptions Causing Problem(2)].
         Example of Descriptions Causing Problem(1)
          -----------------------------------------------------------------
         |  .glb ext,symbol
         |  .dt  ext           
         |  lda  a, dt+:1234h   ; The operand value is handled 
         |                      ; as "symbol - (3<<16)" at linking.
          -----------------------------------------------------------------
    
         Example of Descriptions Causing Problem(2)
          -----------------------------------------------------------------
         |  .dt 3               ;            
         |  lda  a, dt+:symbol  ; The operand value is handled  
         |                      ; as "1234 - (ext<<16)" at linking. 
          -----------------------------------------------------------------
    
    3.2 Workaround
    Add the value of DT to an operand of addressing mode specifier "DT+" and the value of DP to an operand of "DP+".
         [Modifie Example]
          -----------------------------------------------------------------
         |       .glb ext,symbol
         |        .dt  ext           
         |        lda  a, dt+:1234h+(ext<<16)    ; DT value added
         |        .dt 3                         
         |        lda  a, dt+:symbol+(3<<16)     ; DT value added
         |
          -----------------------------------------------------------------
    
  4. Problem on "JMPL" and "JSRL" Instructions

    4.1 Description
    Even if the addressing mode not involved in these instructions (i.e., the absolute indirect addressing mode in "JSRL") is described, errors will not occur. As a result, codes in the absolute indirect addressing mode will be created if this mode is designated.


    4.2 Workaround
    Ensure that "JMPL (mmll)" and "JSRL (mmll)" instructions are not described in the source files, by using an editor, for example.


  5. Schedule of Fixing Problems
    We plan to fixing these problems in our next release.






© 2008. Renesas Technology Corp., All rights reserved. Privacy | Legal