- Important information
- New features
- Known problems
- Program corrections
- User guide corrections
- Miscellaneous
- Release history
Important information
- From version 4.70 and onwards, structured assembly directives are no longer supported.
- Please read the IAR Assembler Reference Guide for 78K for detailed information about this product part.
New features
- None
Known Problems
- None
Program Corrections
- None
User guide corrections
- Value assignment directives
Clarification regarding the DEFINE directive; symbols defined with DEFINE cannot be redefined within the same file. Also, the expression assigned to the defined symbol must be a constant. - Assembler directives
Although it is documentetd, the DS64 directive is not implemented. Because there is no 64-bit data type defined for the 78K microcontrollers, it is not useful. [EW22575]
Miscellaneous
- To assemble with the 78K0R Assembler a source file written for 78K0/78K0S which makes use of the SADDR directive, the file must first be converted. This conversion can be performed with the supplied tool 78KASC.EXE located in the 78k/bin directory.
Release history
2014-04-23 V4.80.2
Program corrections
- Instructions of the type BR 100 and BR $+100 are regarded as equal instead of one absolute address and one relative address when placed in an ASEG type of segment with a known start address. [EW24018]
2012-11-01 V4.80.1
2011-07-04 V4.71.1
Program corrections
- An inline assembler statement that use a far absolute code address no longer generate incorrect code if an earlier instruction had accessed a non-absolute near address. [EW22037]
2010-06-20 V4.70.1
New features
- A new option, --generate_far_runtime_library_calls, has been added to generate __far runtime library calls.
2009-07-01 V4.62.1
- An illegal operation code is no longer generated if an SFR symbol is defined after the symbol is first used. [EW20822]
- The illegal instruction MOVW AX,[BC] is no longer accepted by the assembler. [EW20820]
2008-12-15 V4.61A
- Using an invalid operand in a branch instruction caused a
fatal error after the correctly generated assembler error
message
Ab004
for 78K0R. [EW20296] - The 78K0R assembler accepted illegal
mov
instructions from other registers thanA
(mov <register1>, <register2>
). [EW20188]
2008-07-02 V4.60A
- The 78K0R Assembler now handles the syntax check for the XCH instruction correctly. [EW19140]
- An assembler DEFINE to an external symbol no longer causes the linker to generate errors like "External index out of range in module ...". [EW18111]
- The 78K0R Assembler now sets the runtime model attribute __core to 78k0r, to avoid linking problems with assembler files only.
- In case of using an SFR symbol name or absolute SFR address for a MOV <register> instruction where register was unequal register A, the assembler generated wrong opcodes. [EW19969]
- An error in the 78K assembler caused an internal error in the compiler for the instructions ADD, ADDC, SUB, SUBC, AND, OR, XOR and CMP. When the first parameter was register A and the second parameter an SFR address above the saddr memory area, the SFR address was treated as a saddr address. [EW20058]
2007-05-11 V4.50A
- The XCH r,A instruction generated an incorrect operation code instead of an error message. [EW18797]
2006-07-07 V4.40A
- The DBNZ instruction was not implemented correctly which could lead to a linker range error. [EW18725]
2005-07-15 V4.30A
- Save/Restore of structured assembly character pointers could be destroyed in macro definitions. [EW16874]
- When using conditional assembly, compile errors could appear as operands sometimes lost their short address information. [EW16724]
- The LIMIT directive was not recognized by the assembler. [EW16676]
- Variable names ending with any of the reserved words by, to, downto or step, made the assembler generate the error Invalid syntax. [EW16593]
- The assembler expression solver crashed when too many Undefined symbol errors were generated. [EW16590]
- A problem where the assembler in-correctly handled the usage of an elseif statement in a conditional directive that was nestled in another conditional directive, has been corrected. [EW16375]
- A conditional directive like ELSE or ENDR immediately followed by an assembler comment, was ignored. [EW16228]
- An Internal error was generated for a SET directive followed by a DEFINE directive for the same label. [EW16116]
2004-10-26 V4.20A
2004-05-14 V4.11A
- First release of V4.xx