線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:4518
推到 Plurk!
推到 Facebook!

[單晶片新手]8051指令ORG問題

答題得分者是:ScottWang
iloveopop
一般會員


發表:12
回覆:9
積分:4
註冊:2011-10-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-10-08 18:28:19 IP:221.127.xxx.xxx 訂閱
小弟新來報道,希望各位師兄多多指教!
-----------------------------------------------------
入正題,一個簡單的加法program:
ORG 00H
BEGIN: MOV A,58H
ADD A,59H
MOV 5AH, A
LOOP: SJMP LOOP
END
我知道ORG 00H表示程式在00H位置開始工作,
但如果ORG 00H改成ORG 100H會怎樣?

ScottWang
版主


發表:32
回覆:486
積分:688
註冊:2009-04-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-10-10 09:00:14 IP:59.115.xxx.xxx 訂閱
 一般沒有人會這樣用,因為這樣可能會出現無法預期的運作而當機.
你把開頭設為0100h,程式編譯後會把程式碼放在0100H起的位址內,那麼0000~00FFH這些位址的內容,因為沒有放置有意義的程式碼,可能會讓PC內的資料,抓出後出現問題.
未經有意義的程式編碼,其內容可能為:
1. 00h,00h,00h,00h,00h,00h,00h,00h,......etc
2. ffh,ffh,ffh,ffh,ffh,ffh,ffh,ffh,......etc
3. 無意義的亂碼.
若是需要在100H執行時,可以用
ORG 0000H
start:
LJMP addr0100h
...
...
...
addr0100h:
ORG 100H
...
...
...
LJMP addr0100h
很久沒在試這樣的位址,不知記憶有沒搞錯.

------
高壓直流電源供應器,高壓模組,測試LED專用AC LED定電流源,全範圍可調電壓電流,
中低壓直流電源供應器,電壓放大器,電流放大器,帶通濾波器,高精度參考電壓,
標準電壓,恆流源(定電流源),恆壓源(定電壓源),大電流電源供應器.
接受訂製,設計生產各種特殊規格,高精度產品,學校實驗室,研究單位實驗設備,
另可接受其它電子專案設計,HV Power,Vmax=20KV,Imax=2000A.
http://hvpower.myweb.hinet.net/
iloveopop
一般會員


發表:12
回覆:9
積分:4
註冊:2011-10-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-10-10 20:17:33 IP:221.127.xxx.xxx 訂閱
 0000~00FFH這些位址的內容會自動產生哪些00h,ffh代碼?
ScottWang
版主


發表:32
回覆:486
積分:688
註冊:2009-04-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-10-10 21:11:21 IP:59.115.xxx.xxx 訂閱
一般燒錄器會在空白位址,自動燒入一些00h或ffh,你也可以指定,我是列出它可能的狀態.
------
高壓直流電源供應器,高壓模組,測試LED專用AC LED定電流源,全範圍可調電壓電流,
中低壓直流電源供應器,電壓放大器,電流放大器,帶通濾波器,高精度參考電壓,
標準電壓,恆流源(定電流源),恆壓源(定電壓源),大電流電源供應器.
接受訂製,設計生產各種特殊規格,高精度產品,學校實驗室,研究單位實驗設備,
另可接受其它電子專案設計,HV Power,Vmax=20KV,Imax=2000A.
http://hvpower.myweb.hinet.net/
kib72377
高階會員


發表:1
回覆:217
積分:238
註冊:2004-11-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-10-11 09:12:05 IP:125.233.xxx.xxx 未訂閱
 51的程式位址 0h~2xh 是中斷向量區,沒用到中斷功能的話是可以直接用.
其中 0h是reset 位址.

scott123
中階會員


發表:19
回覆:66
積分:52
註冊:2011-08-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-10-13 18:23:08 IP:203.73.xxx.xxx 訂閱
ORG  0X100 的意思是說以下程式碼由100H位址開始放
基本上程式碼你想要放到哪都沒有問題(當然不要把程式碼放在最後自討苦吃)

只是用組語指令寫的話 會有呼叫跟跳躍要考慮的問題
例如跳躍JMP會有範圍限制 放太遠會跳不過去

如果你那一段程式碼BEGIN:不會被跳躍JMP或呼叫CALL所用到,隨便放

編輯記錄
scott123 重新編輯於 2011-10-13 21:19:00, 註解 無‧
系統時間:2024-04-25 14:03:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!