Re: [問題] 組語的問題…

看板Programming作者時間18年前 (2006/07/06 18:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
我要賭本!! 提到: > 是這樣的,我看到有一段話是這樣的: > > all JUMP and CALL target address are based on 16-bit word address, > so you need to shift your 0xf70 by one to the right. > > 可是他這邊並沒有解釋為什麼會因為這兩個指令是based on 16-bit的word address, > 所以真正要讀入的位址必需要右旋1個bit。這邊指的16bit和右旋1bit有什麼關係? > 下面是個例子: > > 0000 1111 0111 0000 ( 0xf70 ) -> 0000 0111 1011 1000 ( 0x07b8 ) > > 我用的是AVR-GCC。CPU是ATmega128。 > 任何資訊都好。謝謝。 >_<" 我沒用過 ATmega128, 不過從你的問題看來, 我的猜想是: 1. 這個 cpu 的 JUMP 跟 CALL 的目的位址必須在 word boundary, 2. 這個 cpu 的 JUMP 跟 CALL 的目的位址是以 word 為單位計算。 (jump to address 12 要寫成 jump to word 6) 3. 這個 cpu 除了 JUMP, CALL 之外, 骨子裡似乎是以 byte 定址。 (也就是可以讀取任意 address 的 byte/word data) 建議你先看 cpu structure and programming manual, 把 cpu 架構 先了解一下再用組合語言。 -- * Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>
文章代碼(AID): #14hDzV00 (Programming)
文章代碼(AID): #14hDzV00 (Programming)