2013-07-29 18 views
-4

我是新來的彙編程序,已經在大學給了這個簡單的程序,但我不明白爲什麼它不起作用。我不能再多說了,就像我說的那樣,本週我開始使用這種語言。無法確定這個基本的彙編程序錯誤?

list  p=16f690  ; list directive to define processor 
     #include <P16F690.inc>  ; processor specific variable definitions 
     __CONFIG _CP_OFF & _CPD_OFF & _BOR_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _MCLRE_ON & _FCMEN_OFF & _IESO_OFF 


    main 
     cblock 0x20 
       num1,.250 
     endc  
     org 0x00 ; Set code at program memory address 0x00 
      goto init 
     org 0x04 ; Put code at program memory address 0x04 
      nop 
      retfie 
    count: 
     movf num1,w 
     addwf .150,w 
    init: 

     bcf STATUS, RP0 
     bcf STATUS, RP1 
     movlw 0xFF 
     movwf PORTA 
     bsf STATUS, RP0 
     clrf TRISA 
    run: 

     nop 
     goto run 
     END      ; directive 'end of program' 
+3

您是否真的要求我們調試一個彙編語言程序,沒有任何評論,甚至沒有關於它是什麼架構的標籤? –

+1

是什麼讓你覺得它不起作用? –

+2

除了@ CarlNorum的評論,你的意思是「不起作用?」它以什麼方式不起作用? –

回答

2

好吧,我已經採取了對你有點可惜:

init標籤設置爲數衆多的寄存器和下降通到運行,這NOP處於一個非常緊密的循環下去。精細。問題是,count應該如何調用?什麼都沒有引用它,你的初始goto跳過它。它沒有中斷類型的返回值,所以它不能被中斷調用。你的代碼基本上設置了一些寄存器,永遠不會做任何事不是很有趣。

我猜你想讓它以某種方式計算,但你需要實際調用它。你的選擇如何做到這一點。

相關問題