[問題] 關於pic887的一些問題

看板ASM (組合語言)作者 (vofeed)時間13年前 (2012/03/11 17:16), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/3 (看更多)
各位大大,我想請問一下,此程式中的subwf是如何跳到查表的 此程式的動作流程,可以替小弟說明一下嗎?我一直想不通, 以下我解說一下我的想法: list p=16f887 #include<p16f887.inc> D1 equ 0x20 D2 equ 0x21 D3 equ 0x22 ONEIDX equ 0x23 org 00h clrf D1 clrf ONEIDX bsf STATUS,RP0 bcf TRISB,3 clrf TRISD bcf STATUS,RP0 bcf PORTB,3 start: movf ONEIDX,w //第1此跑時,ONEIDX為0=W call TABLE movwf PORTD call delay incf ONEIDX,f //第一次跑,因INCF故1 movlw .10 subwf ONEIDX,w //因10減W故為10 btfss STATUS,Z goto start delay: movlw .8 movwf D3 DLY1: movlw .244 movwf D2 DLY2: decfsz D1,f goto DLY2 decfsz D2,f goto DLY2 decfsz D3,f goto DLY1 return TABLE: addwf PCL,f retlw b'00111111' ;0 retlw b'00000110' ;1 retlw b'01011011' ;2 retlw b'01001111' ;3 retlw b'01100110' ;4 retlw b'01101101' ;5 retlw b'01111101' ;6 retlw b'00000111' ;7 retlw b'01111111' ;8 retlw b'01101111' ;9 end 但怎想都不能如願從0跳至9 請各位大大幫個忙~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.162.153.158

03/13 00:27, , 1F
因10減W故為10......這啥?
03/13 00:27, 1F

03/13 14:23, , 2F
常數為10,這我自已想的,希望有更好的想法~
03/13 14:23, 2F
文章代碼(AID): #1FN6rux1 (ASM)
文章代碼(AID): #1FN6rux1 (ASM)