Re: [問題] 指標

看板ASM (組合語言)作者 (su27)時間10年前 (2014/08/08 13:59), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
你的問題在於你沒學過組合語言 你學過組合語言 在去看指標會超級容易 我宣告一連串的變數a~p(我懶的算是不是16個) 這些變數的存放位址從0x20~0x2F(你也能當這是陣列) 我要去將變數的值全加起來 你程式要sum+=a sum+=b ..... 指標你把它想成它有兩個暫存器一個放 你要寫入你要讀取的位址 另一個是那位址的值 如暫存器0x200 存放的值是20 你寫x1=0x200 就是將你要讀取的暫存器的位址寫入 sum+=*x1 就是將儲存在暫存器0x200的值讀出來 這樣我只要寫幾行程式就能達到我的要求 一行是將我要讀的位址寫入固定的暫存器 在去指定的暫存器讀值 這樣我的程式就會變小(當然n越大 省越多 只有1~2變數 直接給值是最省的) 其實你使用的陣列就是指標 在編譯器我個人是認為他看到指標跟陣列 對它來講是一樣的 ※ 引述《GooLoo (平凡)》之銘言: : 之前有查過一些c語言的書, 瞭解指標... : 但是看完文字描述, 還是不太會用, 也不是很了解它的精神 : 平常都寫一些簡單控制時序的程式,沒有用到指標 : 今天看別人寫的CODE,又看到指標..... : 還是想問這問題, 就是我把*拿掉跟沒拿掉,對整體動作有什麼影響? : 如果沒影響, 好處又是什麼呢? : 如: : void test(unsigned char *data,unsigned long len) : { : ..... : } : 不曉得程式給這樣夠嗎?還是要給些什麼? : 我看程式大部份都寫得跟我平常寫法差不多,只有這邊多* -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 222.72.90.181 ※ 文章網址: http://www.ptt.cc/bbs/ASM/M.1407477595.A.6D8.html
文章代碼(AID): #1Jv6TRRO (ASM)
討論串 (同標題文章)
文章代碼(AID): #1Jv6TRRO (ASM)