『壹』 單片機中地址偏移值是什麼
單片機中地址偏移值 准確來說應叫做:偏移量 用rel表示 是一個8位的帶符號數(即補碼)
表示數的范圍為 -128~127
偏移量 即 rel 是在條件跳轉指令中 或 短轉移指令中的操作數
例如: SJMP 偏移量; 其機器指令代碼為:80H rel (8位二進制數的補碼)
執行時 (PC)<---(PC)+2+rel 即跳轉到地址 是相對於原來指令地址(PC)值向上轉移不超過128的單元 ( rel 為負) 或 向下轉移不超過127個單元( rel 為正)
因此 該定址方式也叫做相對轉移
呵呵 滿意 就給俺加分吧
『貳』 51單片機指令中,如何給rel賦值
相對定址:先找到當前指令下一條指令的pc值,再加上相對偏移量rel,這是對機器碼而言。
但在匯編指令中,rel就是目的地址,執行當前指令時,直接跳到rel代表的目的地址上去。
別看好多教材里胡扯,什麼reli偏移量什麼的,教材作者有本事把rel給成偏移量試試,看看目的地址是不是pc值加他所給定的rel值
『叄』 在單片機原理中,rel具體是什麼意思怎麼用
rel 是偏移量,就是相對一條指令來說的相對地址 每條指令都是要佔用地址的不過寫匯編時直接寫絕對地址就行 想跳轉到哪裡就在那裡做個標記 象 xx:這樣djnz r7,xx;就在滿足要求的時候就能跳轉到地址為xx:的地方了,編譯時匯編程序會自動將絕對地址換算成偏移量 在寫跳轉時候 不用管rel什麼的例如:SJMP rel ;中跳到PC+2+rel 中PC表示 sjmp這條指令的地址 每條指令都有他的地址(都有它的PC指針地址的)其中中2是這整條語句的長度 這整體的意思就是 要跳到 這整條語句開始的地址 加上被它這條地址占據的2個地址 再加rel偏移量在實際編程中只要在一個地方標記xx:語句;當運行到sjmp xx;的時候就會跳到標記地址為xx的地方了 其中xx可以使任何標記
『肆』 單片機中rel什麼作用
單片機中rel代表一個偏移量。
計算機匯編語言中的偏移量是把存儲單元的實際地址與其所在段的段地址之間的距離稱為段內偏移,也稱為「有效地址或偏移量」。
段地址左移四位,與有效地址相加,就構成了邏輯地址。一般而言,段地址是cpu自己獨立編制的,但是偏移量是程序員編寫的。偏移量就是程序的邏輯地址與段首的差值。
(4)單片機rel擴展閱讀
在實模式中,內存比保護模式中的結構更令人困惑。內存被分割成段,並且,操作內存時,需要指定段和偏移量。
段-寄存器這種格局是早期硬體電路限制留下的一個傷疤。地址匯流排在當時有20-bit。然而20-bit的地址不能放到16-bit的寄存器里,這意味著有4-bit必須放到別的地方。因此,為了訪問所有的內存,必須使用兩個16-bit寄存器。
這一設計上的折衷方案導致了偏移量格局。最初的設計中,其中一個寄存器只有4-bit有效,然而為了簡化程序,兩個寄存器都是16-bit有效,並在執行時求出加權和來標識20-bit地址。
參考資料來源:網路-偏移量
『伍』 單片機原理中,rel具體是什麼意思如何使用
rel
是偏移量,不過寫匯編時直接寫絕對地址就行
想跳轉到哪裡就在那裡做個標記
象xx:這樣djnz
r7,xx;就能跳轉了,編譯時匯編程序會自動將絕對地址換算成偏移量
在寫跳轉時候
不用管rel什麼的
『陸』 關於單片機里相對轉移指令中rel的問題
sjmp是短轉移指令,用相對地址,相對地址是有符號數,所以用的都是補碼,89是一個負數,因為第一位是1,所以他如果變成雙位元組就要填FF,如果是正數才填00。。。。
補碼你應該懂得把,負數的補碼就是反碼+1,實際這個語句是向前跳轉,是一個減法,加上一個數的補碼就是相當於執行了減法,89H不是原碼他更不代表-89H。。。
所以向這樣的語句你只要判斷首位是不是比8大,如果大說明是負數加FF,向前跳轉,反之向後跳轉。。。
通常如果你想向前跳,想跳幾個地址就把這個數化成2進制補碼的形式變成16進制填上就沒問題,不過實際當中這些事我們不需要做,編譯器可以替我們干,我們只需要用標示,比如sjmp
D1,在要跳的位置填D1:
編譯器會替我們算。。。
用於運算的數的分浮點數,有符號數,無符號數,只有無符號整型數的16進制才符合我們的常規思維,其他兩種第一次見都會迷惑。。。
『柒』 單片機匯編中rel的格式是什麼
pc本身是不能還得,這個的意思是pc+偏移量在傳送到pc
『捌』 單片機指令JNB字母各代表什麼意思
JNB就是後邊的位操作碼為0則跳轉到指定的行地址。
這是匯編指令,應該是JNB SWLOOP, NEXT
是JNB就應該有逗號,而且逗號後還有標號,而SWLOOP是引腳,指令意思為:SWLOOP腳為低電平則轉到標號NEXT處,否則繼續向下執行。
如果SWLOOP是標號,那應該是JNC SWLOOP
這指令意思就不同了,是不進位(Cy=0)則轉到SWLOOP處,否則向下執行。
(8)單片機rel擴展閱讀:
模型為:JNB bit,rel,其中bit為直接定址位,rel為要轉移到的地方,通常是一個標號;它的意思是若bit為0,則轉移到rel表示的標號處,否則不轉移繼續往下執行。
JNB是根據某一位的狀態判斷轉移的,當檢測位不是1(NB),即為0時就轉移,通常用於判斷引腳。例如:JNB P1.0, TEST;
功能:當引腳P1.0為0時,就跳轉到TEST。
『玖』 51單片機的偏移量rel的范圍-128~127是怎麼算出來的
摘要 MCS-51單片機的相對定址方式 中的 rel 偏移量的范圍是 -128~127