ARM Technical Support Knowledge Articles

DIVISION PROBLEMS WITH THE DALLAS 390 / DALLAS 400

Applies to: C51 C Compiler

Answer


Information in this article applies to:


SYMPTOMS

There is a problem with early steppings of the Dallas Semiconductor DS80C390 that causes erroneous results from the DIV AB instruction if the A and B registers are loaded in a particular sequence.

The problem also appears in the current stepping of the Dallas DS80C400.

CAUSE

The problem exhibits itself when the register Accumulator is accessed immediately before a DIV AB instruction.

RESOLUTION

The solution is to load A, load B, and then execute DIV AB.

Dallas Semiconductor has already corrected this problem in the B4 revision of the 390.

STATUS

The Keil C51 Version 6.14 compiler and higher generates Contiguous Mode code that works with the early versions of the DS390 and the DS400 device. If you have problems, you may download the latest updates from the Keil Website.

If you use the classic 8051 mode of the 390, you should upgrade to the B4 revision of this device.

Article last edited on: 2004-10-13 11:17:43

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential