Re: [問題] 關於ARM組語一點小問題!

看板ASM (組合語言)作者 ( )時間15年前 (2010/10/06 23:55), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《wait (都不知道該說啥了)》之銘言: : 小弟最近剛接觸ARM這方面組語 : 有點問題想請教: : AREA TEST, CODE, READONLY : ENTRY : MOV R0 , #0x00008000 ^ 這裡應該是 9 吧? : MOV R1 , #0x00000009 : MOV R2 , #0x00000008 : MOV R3 , #0x00000007 : STMIB R0!, {R1-R3} : MOV R1,#1 : MOV R2,#2 : MOV r3,#3 : LDMDA R0!, {R1-R3} : END : 在STMIB R0!, {R1-R3} 記憶體中應該是 : [0x0000 9004]=9 : [0x0000 9008]=8 : [0x0000 900C]=7 : 然後R0 = 0x0000 800C : 再從LDMDA R0!, {R1-R3} 取回的時候不是應該: : [0x0000 900C]=9 : [0x0000 9008]=8 : [0x0000 9004]=7 : 但實際用AXD去RUN 剛好是7 8 9的組合 : 請問各位前輩我想法到底哪邊錯了呢!? 根據這個教學 http://www.peter-cockerell.net/aalp/html/ch-3.html 「Remember that registers are always stored lowest at lowest address」 意思為「編號較小的暫存器會存到較低的記憶體位址」 或「較低的記憶體位址內容會載入到編號較小的暫存器」 所以 r3 = [0x0000 900C] = 9 r2 = [0x0000 9008] = 8 r1 = [0x0000 9004] = 7 r0 = 0x00009000 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.48.91

10/06 23:59, , 1F
感謝大大解決小弟我的問題^^"
10/06 23:59, 1F
文章代碼(AID): #1Ch9lluX (ASM)
討論串 (同標題文章)
文章代碼(AID): #1Ch9lluX (ASM)