【发布时间】:2019-06-25 10:32:56
【问题描述】:
这是一个在 MPLAB 中使用 SIMULATOR for PIC16 执行的汇编程序小程序。
我不明白为什么在最后三个 NOP 中的最后一个 NOP 之后程序返回到该组 NOP 的第一个。在我的脑海中,在三个 NOP 之后程序终止,实际上有 END 语句。
;MAIN
MAIN:
CALL INITALL
ciclo:
CALL COPYcurrentSFRincurrentGPR
CALL IncrementFSRPOINTER
CALL IncrementGPRPOINTER
;DECFSZ COUNTER,1 ;se counter==0 allora salta l'istruzione successiva
; GOTO ciclo ;dato che il decremento lo fa prima della verifica della condizione di 0
NOP
NOP
NOP
;GOTO endprogram ;allora mettendo il counter a 0xB (12) farà 11 cicli, che volendo saltare il registro
;INDF (0x00) mi va bene
;endprogram:
;fine del programma
END
【问题讨论】:
-
在你的代码之后内存中肯定有一些东西,不管是什么东西都必须让它循环。分解内存内容以查看它是什么和/或模拟器中的单个步骤。