指正Keil C code錯誤的地方! |
|
hys0608
一般會員 ![]() ![]() 發表:4 回覆:3 積分:1 註冊:2005-07-11 發送簡訊給我 |
請問各位:
如下組合語言的副程式,我寫成Keil C code雖然pass complier後,但是結果並非所預期。所以請問各位,能否指正Keil C code錯誤的地方(組合語言是ok的)!
[assemble code start] X EQU 30H Y EQU 31H EX EQU 32H EY EQU 33H XBUFFER EQU 34H YBUFFER EQU 35H DBUF EQU 36H MOV X,#01 MOV Y,#01 MOV EX,#20 MOV EY,#80 MOV DBUF,#FFH CALL DDRAMWR_BW_BLOCK . . . ;-------------------------------------------- DDRAMWR_BW_BLOCK: PUSH 1 PUSH 2 PUSH 3 PUSH 4 CLR C MOV A,EX SUBB A,X INC A MOV XBUFFER,A CLR C MOV A,EY SUBB A,Y INC A MOV YBUFFER,A MOV A,Y DEC A MOV B,#20 MUL AB CLR C ADD A,X CJNE A,#00H,BW62_BLK DEC B BW62_BLK: DEC A MOV R1,A MOV A,B ADDC A,#0 MOV R2,A CLR C BW22_BLK: MOV R3,XBUFFER BW12_BLK: MOV A,DBUF CPL A CALL DATA_WR BW52_BLK: INC R1 MOV A,R1 DEC A CJNE A,#255,BW32_BLK MOV R1,#0 INC R2 CLR C BW32_BLK: DJNZ R3,BW12_BLK CLR C MOV A,#20 SUBB A,XBUFFER ADD A,R1 MOV R1,A MOV A,R2 ADDC A,#0 MOV R2,A DJNZ YBUFFER,BW22_BLK POP 4 POP 3 POP 2 POP 1 RET ;-------------------------------------- DATA_WR: ;Write data to MEM thru 1352 PUSH DPL PUSH DPH ; CLR C MOV DPL,R1 MOV DPH,R2 CLR P3.4 ;MEMCS#=0, CLR P3.1 CLR P3.0 CLR P1.0 ;Ereset=0; MOVX @DPTR,A SETB P3.4 ;MEMCS#=1 POP DPH POP DPL RET ;-------------------------------------------- [assemble code end] [c51 code start] unsigned char xdata * data Addr; Show_bar(0x01,0x01,0x20,0x80,0xff); //================== void Show_bar(unsigned char x, unsigned char y,unsigned char ex, unsigned char ey,unsigned char DBUF) { unsigned char c,x1,y1,YHL,YH,YL,xbuffer,ybuffer; CY=0; c=CY; xbuffer=(ex-c-x) 1; ybuffer=(ey-c-y) 1; YHL=(y-1)*0x14; YH=(YHL&0xff00)>>8; YL=(YHL&0x00ff); c=0; YL=YL x; if(YL=!0) { x1=YL--; y1=YL c 0; } else { YH--; x1=YL--; y1=YL c 0; } loop1: if(ybuffer!=0) { loop: if(xbuffer!=0) { DBUF=~DBUF; P3_4=0; P3_1=0; P3_0=0; P1_0=0; *Addr=DBUF; P3_4=1; x1 ; x1--; if(x1!=255) { xbuffer--; } else { x1=0; y1 ; c=0; } goto loop; } else { c=0; x1=0x14-xbuffer x1; y1=y1 c 0; } ybuffer--; goto loop1; } } //========================= [c51 code end] |
㊣
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |