作者su27 (su27)
看板ASM
标题Re: [问题] 指标
时间Fri Aug 8 13:59:51 2014
你的问题在於你没学过组合语言
你学过组合语言 在去看指标会超级容易
我宣告一连串的变数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://webptt.com/cn.aspx?n=bbs/ASM/M.1407477595.A.6D8.html