??? 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 |