This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

dr80390 arithmetic accelerator

Hi Sir,
I install keil c7.10. and choose device dr80c390,and check arithmetic accelerator.
compile pass. But the div and shift operate result is wrong. something like
DWORD i,j,k;
k = i / j;
k = i << 4;
I check assembly code . found that
C?ULDIVDA:
C:0x000E8B B80021 CJNE R0,#SectorCount(0x00),C:0EAF
C:0x000E8E B9005A CJNE R1,#SectorCount(0x00),C:0EEB
C:0x000E91 8FD3 MOV MA(0xD3),R7
C:0x000E93 8ED3 MOV MA(0xD3),R6
C:0x000E95 8DD3 MOV MA(0xD3),R5
C:0x000E97 8CD3 MOV MA(0xD3),R4
C:0x000E99 8BD4 MOV MB(0xD4),R3
C:0x000E9B 8AD4 MOV MB(0xD4),R2
C:0x000E9D E5D2 MOV A,MCNT1(0xD2)
C:0x000E9F 20E7FB JB 0xE0.7,C:0E9D
C:0x000EA2 ACD3 MOV R4,MA(0xD3)
C:0x000EA4 ADD3 MOV R5,MA(0xD3)
C:0x000EA6 AED3 MOV R6,MA(0xD3)
C:0x000EA8 AFD3 MOV R7,MA(0xD3)
C:0x000EAA ABD4 MOV R3,MB(0xD4)
C:0x000EAC AAD4 MOV R2,MB(0xD4)
C:0x000EAE 22 RET


And I check dr80390 spec the multiplication and Divisioin unit is
MD0 0XF9
MD1 0XFA
MD2 0XFB
MD3 0XFC
MD4 0XFD
MD5 0XFE
ARCON 0XFF

Am I wrong or there have some way to solve the problem?
Thanks.
Ding