【发布时间】:2015-12-29 01:16:10
【问题描述】:
我不知道是否有可以将 ASM 转换为 C 的程序。我查了谷歌,我读到 IDA Pro 可以做到,但我不知道怎么做。无论如何,如何将这段用ASM编写的代码转换成C?
代码如下:
#define CALIBRATIONTIME .10 ;Number Of Times To Measure Signal During Calibration
;**********************************************************************************************
;Calibrate() - Measures A Period From The Input(GP0) Reference Signal
; - Updates Osccal Value
; - Updates E^2
;**********************************************************************************************
CALIBRATE
movlw CALIBRATIONTIME
movwf COUNTER ;Calibration Counter
LOW0
btfsc INPUT0 ;Wait To Sample Low Edge #0 (Makes Sure We Are Synchronized First Time Through)
goto LOW0
HIGH1
btfss INPUT0 ;Wait To Sample High Edge #1
goto HIGH1
clrf TMR0 ;Start Timer (Timer Will Be Behind By 5us After This Instruction)
LOW1
btfsc INPUT0 ;Wait To Sample Low Edge #1
goto LOW1
HIGH2
btfss INPUT0
goto HIGH2
movf TMR0,W ;Stop Timer (Timer Will Be Stopped 3us Late)
addlw .2 ;Timer Is Behind By 2us Total From Start To Stop
call CHECKPERIOD ;See If Osccal Needs To Be Adjusted
LOW2
btfsc INPUT0 ;Wait To Sample Low Edge #2
goto LOW2
decfsz COUNTER,F ;Decrement The Calibration Counter
goto HIGH1
call UPDATE_EE ;Update E^2
return
【问题讨论】:
-
您确实已经在 cmets 中编写了算法,用另一种语言实现它应该不难。
-
所以这应该是一个“if”语句吧?
-
这看起来像 PIC 程序集。
-
我投票结束这个问题,因为它属于reverseengineering.stackexchange.com
标签: c assembly embedded pic microchip