无法使用此基本汇编程序确定错误?

时间:2013-07-29 18:16:10

标签: assembly pic

我是汇编程序的新手,并且在大学里已经获得了这个简单的程序,但我无法理解为什么它不起作用。我无法解释更多,就像我说的那样,我本周开始使用这种语言。

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'

1 个答案:

答案 0 :(得分:2)

好的,我对你有点遗憾:

你的init标签设置了一堆寄存器,然后进入运行状态,它会永远停留在一个非常紧密的循环中。精细。问题是,应该如何调用count?没有任何内容可以引用它,而您的初始goto会跳过它。它周围没有中断类型返回值,因此无法调用中断。您的代码基本上设置了一些寄存器,并且永远不会执不是很有趣。

我猜你想要以某种方式计算,但你需要以某种方式实际调用它。您可以选择如何做到这一点。