老地方冰果室交流區

歡迎冰果室讀者在此交流
現在的時間是 11/21/2019 2:43 am

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 9 篇文章 ] 
發表人 內容
文章發表於 : 08/20/2005 12:50 pm 
離線
嗜冰客
頭像

註冊時間: 04/30/2001 1:01 am
文章: 1530
來自: 新竹
好多年了,一直找不到for mac的,只好一直忍受批西的環境,

終於提起勇氣,奮起吃奶的力,寫完這個程式,也終於可以完全擺脫批西。

程式Bug在所難免,歡迎高手來信指導,感激!

hc11demo

rlong4587@mac.com

_________________
I love OPERA !


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 08/20/2005 1:53 pm 
離線
冰果室元老
頭像

註冊時間: 03/16/2005 5:18 pm
文章: 3205
來自: insoler.com
我來幫你試用......

打開 test1.a 按 compile 結果【應用程式 yahc11 發生未預期結束】.... 死當.....

系統: Mac OS X 10.4.2
電腦:鈦書

我以前也寫過 Assembly 的 Compiler 喔~~
所有的 Compiler 中,Assembly 應該是最好寫的。

我很久沒有玩 Single Chip CPU 了,不知道 MC68HC11 我有沒有玩過?可能沒有....

_________________
世界初、支援RAW相片上傳、分享、學習交流的 insoler • 社群網站https://www.insoler.com
攝影書:「美食写真の達人」進藤ヒカル・著


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 08/20/2005 7:40 pm 
離線
嗜冰客
頭像

註冊時間: 04/30/2001 1:01 am
文章: 1530
來自: 新竹
進藤光 寫:
我來幫你試用......

打開 test1.a 按 compile 結果【應用程式 yahc11 發生未預期結束】.... 死當.....

系統: Mac OS X 10.4.2
電腦:鈦書

我以前也寫過 Assembly 的 Compiler 喔~~
所有的 Compiler 中,Assembly 應該是最好寫的。

我很久沒有玩 Single Chip CPU 了,不知道 MC68HC11 我有沒有玩過?可能沒有....


謝謝您,用心幫我測試,

煩請使用之前,讀一下readme.txt 檔,這個assembler不是用於翻譯個別source檔的,
您必須打開project檔 "fortest.txt" ,則他會將所有的source檔全部翻譯,並 Link 一次完成,
而後產生個別的 List 檔案及 Motorloa S1格式的 machine code 檔案,煩請再撥空試一試。

因為我只有在 OSX10.4.2之G5 dual 2G , Mac mini 以及 Power book 12"試過, 也很想知道其他Mac機種的相容性,
這個程式的人機界面使用carbon, 翻譯器則是一般C語言,在XCODE下發展的。
我用他翻譯過以前開發的自動化控制器,有10個原始檔案,2486行,產生5334個machine code結果和用PC windows XP上商用翻譯器 A11.exe翻譯的結果相同。

目前這個翻譯器尚未支援 Macro 和 Condition 功能,有空我會慢慢加上,並增加MCS51,PIC16FXX等常用單晶片CPU的支援(似乎有點好高騖遠啦) :x

_________________
I love OPERA !


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 08/20/2005 11:23 pm 
離線
冰果室元老
頭像

註冊時間: 03/16/2005 5:18 pm
文章: 3205
來自: insoler.com
不客氣!繼續補充說明幾點:

1. 所有電腦程式中,Compiler 大概是最難寫的程式,難度很高,而且絕不容許 Bug,畢竟程式有 bug,再加上 Compiler 也有 bug,不當才怪....
所以 Assembly Compiler 雖然比較簡單,但也是不好寫的程式!!

2. 我有留意你的 Compiler 也有做 2 Pass compile,這是為了解決一些【向前參考】定址的問題,包括 jmp 跟 call 等。

3. 建議把 project file 副檔名改成 .prj 之類,用 .txt 而且是那樣的內容,讓我誤解..... .a 檔比較像 source code。不過,不能直接處理 source code 的 compiler 也很奇怪.....

4. 把主視窗關掉,點選【Command / Open】什麼也沒有,只好整個程式關掉重開。

5. 如果可以,寫成一個簡單 IDE 環境會更好,比如可直接叫文字編輯改 source code。

6. 至於 Macro 我在 N 年以前用 TASM, MASM 寫過一個 Macro Language 把 Assembly 高階化。我在學校寫的 assembly program 就是套用 Macro Language..... 結果老師大概有看沒懂..... 呵呵~~~

_________________
世界初、支援RAW相片上傳、分享、學習交流的 insoler • 社群網站https://www.insoler.com
攝影書:「美食写真の達人」進藤ヒカル・著


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 08/21/2005 8:20 am 
離線
嗜冰客
頭像

註冊時間: 04/30/2001 1:01 am
文章: 1530
來自: 新竹
謝謝您寶貴的意見,您所提的一些缺點,我會改進的。

對於 "Open project file" 未對副檔名做規範,我覺得您的建議很好,硬性指定必須 .prj 可減少錯誤與誤解發生。

以前使用PC上的許多 Assembler 全部是Assembler and Linker, 首先對各個 source 檔 assembler 完後 還要再經 Linker 才能用,

我個人認為,以往電腦速度慢,因此對於發展大程式,經常source檔會有數十個,若對其中一個source更動,則只翻譯更改檔,產生該檔的中間檔 ".obj",
再對各個 .obj檔做 Link即可,因此才有 make.exe 的必要,
這個方式的缺點是所產生的 List檔,其定址 Address 為相對位址,
也就是說,每個source的各個section (Absolute section除外) 都由位置 "0" 排起,非常不方便作為程式debug用。

現今電腦速度非常快,沒有必要產生中間檔 .obj,
對全部檔案做翻譯及連結都是瞬間完成,
所產生的 List檔已包含最終正確位址,用來作為程式的 Debug 非常好用。
這也是觸發我寫這個翻譯器的主要原因,不想再使用PC上那些經常要設計複雜的Make檔,一經make就產生一大堆 .obj檔,要debug就得計算某個 symbol 的絕對位址,

因為對各個source做翻譯,只能產生相對位址碼,在真正實用上沒多大意義。

我寫的這個翻譯器,是2 pass assembler與Linker一次完成,直接產生 List 檔及 machine code 檔,全部是最終的絕對位址。

_________________
I love OPERA !


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 08/21/2005 10:54 am 
離線
冰果室元老
頭像

註冊時間: 03/16/2005 5:18 pm
文章: 3205
來自: insoler.com
不客氣囉~~

是的,我了解..... 產生 .obj 檔還有一個收錄到 .lib 檔的好處,以後要 make 直接指定使用的 library 即可。

如同你說的,這只是用在 Single Chip CPU,內建的 ROM,RAM 有限,程式再大也就那若干 MB,不管改了那個 Source 通通 compile 一次,
也還是超快的,花 2 秒跟花 5 秒沒啥差別,更何況現在連一秒都不到.... 我還只是用 PB G4/500 而已...

如果你把 Assembly 寫完,倒是建議可以寫模擬器....
我當年寫 Compiler,程式也懶得丟到 Single chip CPU 上跑,畢竟還要【燒 ROM】,寫錯了還要清 ROM,乾脆就再寫一個模擬器,把 machine code 丟到上面去跑。

Debug 喔~~更簡單了,所有的 register 與正在跑的 code 都可以顯示出來, (還可順便顯示對應的指令) 。因為程式不大,所以我的 debug 功能也沒有發展得很齊全。

_________________
世界初、支援RAW相片上傳、分享、學習交流的 insoler • 社群網站https://www.insoler.com
攝影書:「美食写真の達人」進藤ヒカル・著


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 08/21/2005 3:58 pm 
離線
嗜冰客
頭像

註冊時間: 04/30/2001 1:01 am
文章: 1530
來自: 新竹
堧體模擬器我不曾用過,因為我大部分寫的程式都與硬體息息相關,如紅外線遙控發射與接收,RS458 訊號的編碼傳送與接收解碼等,還是使用硬體 ICE(In Circuit Emulator) 方便,也不必燒EPROM之類的東西,只要將程式 Down load到 Emulator上的RAM 即可,debug還可藉助於 Logic analyzer, Digital Oscilloscope等,設定Hardware Breakpoint 遠比 Software simulation 快速、正確。因此快速compilier與絕對位址的List file相當重要,能過迅速的幫助我找到Bug的位址。

_________________
I love OPERA !


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 08/21/2005 4:04 pm 
離線
冰果室元老
頭像

註冊時間: 03/16/2005 5:18 pm
文章: 3205
來自: insoler.com
嗯~你有 hardware ICE 當然比較方便....
以前也有 software ICE .... 現在也沒有 Mac 版吧?

像我沒有 ICE,也沒有 CPU,所以程式也不能跑,只能看到 compile 成功而已.... 呵呵~~

_________________
世界初、支援RAW相片上傳、分享、學習交流的 insoler • 社群網站https://www.insoler.com
攝影書:「美食写真の達人」進藤ヒカル・著


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 08/21/2005 5:45 pm 
離線
嗜冰客
頭像

註冊時間: 04/30/2001 1:01 am
文章: 1530
來自: 新竹
對阿!
目前我有一套 M68HC05EVM 與、一套 M68HC11EVM 以及一套 M68HC11D3EVB 這些 Motorola 硬體模擬器的Debuger都是build in 在電路板內,透過 RS232與電腦連接,可設定硬體Breakpoint,因此電腦內只要有如PC上的Terminal或Mac上的 ZTerm 即可進行硬體Emulation,只是沒有Symbolic debug功能,因此只要有absolute addressing的Listing file就非常方便,這正是我寫這個翻譯器的真正目的。

另外有一套Leap的8052 Emulator則只能靠Leap 提供for PC windows的Emulator程式了,它是用Parallel Printer port 與電腦連接,可進行Symbolic debug, 對於Mac就沒法度了。 :evil:

其實能看到自己做的程式compile成功也是一件很快樂的事,不是嗎! :lol:

_________________
I love OPERA !


回頂端
 個人資料  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 9 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
POWERED_BY
正體中文語系由 竹貓星球 維護製作