作者WPC.bbs@bbs.nhctc.edu.tw (找一個理由...), 信區: sources
標題Re: [問題]組合語言..請教各位高手..
時間新竹師院風之坊 (Sat Jan 1 11:01:36 2005)
轉信站: GIBBS!news2.ncku!ccnews.ncku!news.ccns.ncku!news.mksh.phc!news.nsysu!ne
※ 引述《journeyman@kkcity.com.tw (張建邦is coming to town)》之銘言:
> ※ 引述《gmobug.bbs@bbs.hs.ntnu.edu.tw (蟲 低調‧D調‧D掉)》之銘言:
> > 喔喔...真厲害
> > 對不起我錯了...=.=
> 我在意這個問題是因為x86 組語我從小(真的是從小)就沒學好過。後來
> 接觸到MIPS處理器的組語,發現他們的程式很好寫,因為你可以動用的通
> 用暫存器超過18個,又不用分什麼定址法。相形之下暫存器在x86 上是很
> 珍貴的資源,如果是最傳統的8086組語,只有四個暫存器,又不能隨便拿
> 來定址。我認為不管多新的新手對此都應該有相當的認識。
以現在來說有7個是通用的
ABCD共4個之後, SI/DI/BP (SP最好別碰)
在C/C++裡頭, 只剩6個... (BP最好別碰)
> 其實聽說還有只有一個暫存器的CPU,那才是真正的地獄。
最近用組合語言實做RSA/RC6/SHA512, 就老是含恨... 常常還是必須要動用記憶體...
真的覺得蠻痛苦的...
(其實現在的P4/K7/K8核心,內部都是risc, 老早就擁有數十個register了,相容性...唉)
考慮一下Althon 64... 有額外的r8~r15可以用... :)
多register有個好處... 那就是即使是C/C++這些高階語言最佳化後也可以變得很有效率..
如果CPU只有一個通用暫存器... 那... 那還是用C好了啦... @@"
--
○ Origin: 新竹師院 風之坊﹝bbs.NHCTC.edu.tw﹞From: 61-64-100-100-adsl-tpe.dynamic.so-net.net.tw