[問題] 系統程式裡的組語

看板ASM (組合語言)作者 (阿丹)時間13年前 (2012/01/06 12:46), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
這是系統程式書裡,其中一章在介紹組語的,是在介紹多層次的副程式呼叫 順便附上我的想法...不知道對不對... 程式碼: LD R2, x 將x值載入R2暫存器 PUSH R2 將R2推入堆疊 CALL f1 呼叫副程式f1 ST R1, y 將R1暫存器的內容存到y裡(雖然我不知道存了什麼...) RET x: WORD 1 x有一個字組的空間 y: RESW 1 y保留了一個字組空間 (x和y差在哪?) f1: POP R2 將R2推出來 PUSH LR 將LR推入以返回位址 ST R2, t 將R2暫存器的值存到t裡 LD R3, pt 將pt載入R3,因為pt就是t,所以R3的值現在是x?不懂幹麻要分pt跟t? PUSH R3 將R3推入 CALL f2 呼叫f2 ST R1, b 把R1暫存器的值存到b裡 ADD R1, R1, R1 把R1的值變成二倍 POP LR 將LR推出 RET t:RESW 1 b:RESW 1 pt:WORD t f2: POP R2 將R2推出,但剛剛在f1不是推出來了?可以再推一次? LD R3, [R2] 將R2記憶體值裡的內容載入到R3,但剛剛R2的值不是存到t裡了? 現在R2裡還有資料? LDI R4, 5 將數值5載入R4 ADD R1, R3, R4 R3和R4值相加,載入R1 ST R1, r 將R1的值存入r RET r:RESW 1 另外,為什麼要pt: WORD t 再 t: RESW 1呢? pt: WORD t 代表pt的初始值為t,t也是一個變數,有1個字組的空間? 那為什麼在f1裡,ST R2, t 不寫成 ST R2, t 呢? LD R3, pt LD R3, t 好像pt跟t都各是獨立的空間? 請大家教教小弟吧! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 27.243.195.157
文章代碼(AID): #1F1do-YX (ASM)
文章代碼(AID): #1F1do-YX (ASM)