| ??? 08/17/08 13:41 Read: times |
#157536 - Microprocessor name. Responding to: ???'s previous message |
Hi folks,
I using 89C52 and external RAM 62256. Hi Jan, Frieder Use Frieder's C code:
#define EndDspTab 16
unsigned char DspTabCount = 0;
unsigned char xdata * DspTabPoint;
xdata unsigned char ADspTab _at_ 0x5000;
void main()
{
DspTabPoint = &ADspTab;
do {
if (*DspTabPoint == 0)
break;
DspTabPoint++;
} while ( ++DspTabCount != EndDspTab);
}
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION main (BEGIN)
; SOURCE LINE # 10
; SOURCE LINE # 11
; SOURCE LINE # 12
0000 750000 R MOV DspTabPoint,#HIGH ADspTab
0003 750000 R MOV DspTabPoint+01H,#LOW ADspTab
0006 ?C0003:
; SOURCE LINE # 13
; SOURCE LINE # 14
0006 850082 R MOV DPL,DspTabPoint+01H
0009 850083 R MOV DPH,DspTabPoint
000C E0 MOVX A,@DPTR
000D 600F JZ ?C0005
; SOURCE LINE # 15
000F ?C0004:
; SOURCE LINE # 16
000F 0500 R INC DspTabPoint+01H
0011 E500 R MOV A,DspTabPoint+01H
0013 7002 JNZ ?C0006
0015 0500 R INC DspTabPoint
0017 ?C0006:
; SOURCE LINE # 17
0017 0500 R INC DspTabCount
0019 E500 R MOV A,DspTabCount
001B B410E8 CJNE A,#010H,?C0003
; SOURCE LINE # 19
001E ?C0005:
001E 22 RET
; FUNCTION main (END)
Thanks and best regards, Cuong, |
| Topic | Author | Date |
| Convert Assembly routine to C using Keil. | 01/01/70 00:00 | |
| no guarantee this will fit your purpose... | 01/01/70 00:00 | |
| Assembly to C and then back again | 01/01/70 00:00 | |
| Double loop | 01/01/70 00:00 | |
| yes, you are right | 01/01/70 00:00 | |
| Target processor name. | 01/01/70 00:00 | |
| Microprocessor name. | 01/01/70 00:00 | |
| initializing global variable to zero | 01/01/70 00:00 | |
Are you sure you want it outside of the loop? | 01/01/70 00:00 | |
| What is the target processor name.?? | 01/01/70 00:00 |



