PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   組合語言 (https://www.pcdvd.com.tw/showthread.php?t=796286)

yumi 2008-05-27 08:00 PM

組合語言
 
最近在學組合語言,但是實在搞不太懂這種程式該怎麼弄懂。。。
請各位高手給點建議唄。。。

snoopy1029 2008-05-27 08:23 PM

引用:
作者yumi
最近在學組合語言,但是實在搞不太懂這種程式該怎麼弄懂。。。
請各位高手給點建議唄。。。

當初退伍前應徵到Notebook BIOS engineer的工作
那時候說真的
程式完全不會
組合語言的MOV AX,BX
是誰move給誰
我也搞不清楚
那時公司面試的主管打電話問我要不要過去上班
我問他如何加強assembly coding的能力
他說去買一本施威銘的書看看吧
那時我買了一本施的書
另一本是誰忘了
花了一個月把裡頭所有程式看懂
一個月後我已經可以寫出類似RU(Register utility)的tool了
但一年多之後
我還是放棄了軟體這條路
真的沒有慧根
所以又回到硬體這條路上
如果你真的對組合語言有興趣
多看人家寫的code真的有幫助
但是也要學著自己寫書上的範例
有花時間就會看到成果

abc630 2008-05-27 08:26 PM

沒錯,多花時間,累積經驗。

That's all

erai 2008-05-27 09:45 PM

1. 多做練習(就是把書本的範例自己寫一遍,不是照抄哦)
2. 把自己當成是CPU

參考看看

rvnk 2008-05-27 10:36 PM

在高職時第一次學8086組合語言
班上幾乎全軍覆沒,我是少數幾個還活著的

實習時是寫8051,同樣也是組語,但情況就好多了
除了老師教學方式較好外,51的架構簡單的多

退伍後去寫PIC,和51比起來指令更少
學起來更快,目前寫BLDC Fan是最讓我最有成就感
主要是在用MCU控制Fan
基本上用C是寫不出來的


寫組語我的作法是把也是把自已當作Cpu
把一件事,想成是由許多"小到不能再小的步驟"去組成

aston 2008-05-27 10:51 PM

引用:
作者rvnk
在高職時第一次學8086組合語言
班上幾乎全軍覆沒,我是少數幾個還活著的

實習時是寫8051,同樣也是組語,但情況就好多了
除了老師教學方式較好外,51的架構簡單的多

退伍後去寫PIC,和51比起來指令更少
學起來更快,目前寫BLDC Fan是最讓我最有成就感
主要是在用MCU控制Fan
基本上用C是寫不出來的


寫組語我的作法是把也是把自已當作Cpu
把一件事,想成是由許多"小到不能再小的步驟"去組成


PIC的組合語言真是好物啊!
RISC架構,指令很少,讓你學的快,
但是要學的巧,就真的要花點心思,
用那些少許的指令,要做出一些複雜的功能,
就是看出功力的時候。

ice568 2008-05-28 01:17 AM

引用:
作者yumi
最近在學組合語言,但是實在搞不太懂這種程式該怎麼弄懂。。。
請各位高手給點建議唄。。。

要懂其實很容易,真的就像大大所說的,將自己當成CPU...
簡言之,當你下一個動作時,你必需思考它的指令在做什麼.

換言之,你必需先了解硬體,硬體有哪些東西是你可以用的(reg.,ram,io...)
接著,你必需了解硬體上的軟體部份(data flow,原廠是否有提供開發套件...)
然後才是組語開發的部份

所以本書在教 大部份都會從 ,硬體架構->週邊->資料格式->怎麼寫->範例...這樣教

組語比較難的是 看懂別人的程式,如果整個架構沒有注釋,可以說和逆向工程差不多.
而比較簡單的是那種教學程式,你可以直接拿來套用.

入門 建議從intel 的x86系列下手.

MrHermes 2008-05-29 01:46 AM

施威銘那本黑色的... 之前翻到快背起來了.
後來覺得好像卡住了, 因為沒有其它硬體的資料, 這些基本的指令根本搞不出啥名堂...
當OS 由DOS 進化到WINDOWS 後, 組語更是無用武之地了, 單純寫程式不會去碰到硬體的,
還是學其它語言吧...

okdwnk 2008-05-29 02:12 AM

組合語言,算是學起來墊底的吧.......
會組合語言之後,其他的軟體,學起來會輕鬆許多......

果汁吧店長 2008-05-29 04:55 PM

組合語言的好處

在於~~~~

寫的時候看得懂,隔個三天就不懂~~~~~再放個一個星期~~~

只有cpu 才看得懂 :laugh: :laugh:


基本上,只要了解原理就不難。但是~~~這種事是要靠天份的~

像我,如果有 c 可以用,那怕是轉換率太差,我也要用 C

為什麼呢?

因為,根據一位有十來年的程式設計師私下告訴我

寫程式加註解~~~~那是嘴巴上說說,實際上是不會出現的~~~

因為懶~~~~~~

而組合語言呢,一旦沒有了註解,嘿嘿嘿~~~~很快你就看不懂了


所以,要學會組合語言,不難。但是~~~~~記得要加註解哦~


所有的時間均為GMT +8。 現在的時間是03:08 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2026。