• slider image 514
  • slider image 516
  • slider image 517
  • slider image 518
  • slider image 519
:::


Browsing this Thread:   2 Anonymous Users






Re: 請問要如何製作一個程式庫(labrary)
#4
版主
版主


查看用戶資訊
可以參考 W401 workshop 教材的第七章 C call Assembly

發表於: 2007/1/22 18:15
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問要如何製作一個程式庫(labrary)
#3
高級會員
高級會員


查看用戶資訊
請問版大有參考資料或是範例可以提供我作為參考嗎?
如果有可以麻煩您寄到yklin@sinomatrix.com
謝謝

發表於: 2007/1/22 15:05
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問要如何製作一個程式庫(labrary)
#2
版主
版主


查看用戶資訊
1. 將 obj 檔案用 MPLIB.exe 便成 LIB
2. 並不是單純的將組語變成 LIB 後就可以被C呼叫,沒這麼簡單。
3. Library 裏所使用的變數最終還是要交LINKER來排實際的位址,Library 裏的程式與變數不能有 absolute 的語法
4. 程式裡有 CODE , RES , ORG 組譯應該會失敗

發表於: 2007/1/20 10:29
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請問要如何製作一個程式庫(library)
#1
高級會員
高級會員


查看用戶資訊
請問各位,請問如何將一個寫好的程式改成可供呼叫的library?
如果原本是用assembly寫的程式,改成library後,是否也可以給c來呼叫使用?
還有想請問在library中的是如何分配暫存器的位址,是否是在主程式呼叫時才分配一個位址給LAB中的暫存器使用,在程式結束後就釋放LIB所控制的位址?
例如下面這個程式,要加減哪些東西,才可以成為一個可供呼叫的程式庫?
TITLE "B2BCD.ASM"
LIST P=18F452
#INCLUDE <P18F452.INC>

GLOBAL _B2_BCD_Loop

#define TRUE 1
#define FALSE 0

_INC equ 1
_NO_INC equ 0
_LOW equ 0
_HIGH equ 1


MY_RAM0 UDATA
byte RES .5
R0 RES .6 ; must maintain R2, R1, R0 sequence
count RES .1
count1 RES .1
count2 RES .1
t_status RES .1
#define carry .7


ORG 00H
GOTO _B2_BCD_Loop

CODE
_B2_BCD_Loop
movlb high byte
movlw .8
movwf count ; set count = 16
movwf count1
movlw .3
movwf count2
_div_8
rrcf count1
decfsz count2
goto _div_8
btfsc STATUS,C
incf count1
movff count1,count2

clrf R0
clrf R0+1
clrf R0+2
clrf R0+3
clrf R0+4
clrf R0+5
loop40
movlw byte
movwf FSR0L
MOVLW HIGH byte
MOVWF FSR0H
movff count2,count1
loopii
rlcf t_status,carry
rlcf INDF0
bcf t_status,carry
btfsc STATUS,C
bsf t_status,carry
incf FSR0L
decfsz count1
goto loopii
rlcf t_status,carry
rlcf R0
rlcf R0+1
rlcf R0+2
rlcf R0+3
rlcf R0+4
rlcf R0+5

dcfsnz count
return ; DONE
adjDEC
movlw R0 ; load R2 as indirect address ptr
movwf FSR0L
movlw high R0
movwf FSR0H
call adjBCD

movff count2,count1
BCD_INC
incf FSR0L, F
call adjBCD
decfsz count1
goto BCD_INC

goto loop40

adjBCD
movf INDF0,W
addlw 0x03
btfsc WREG,3 ; test if result > 7
movwf INDF0
movf INDF0,W
addlw 0x30
btfsc WREG,7 ; test if result > 7
movwf INDF0 ; save as MSD
return

goto loop40
END

發表於: 2007/1/18 14:16
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------