Discussion:
什麼是Assembly?
(时间太久无法回复)
沒有暱稱
2003-12-08 18:17:13 UTC
Permalink
是像c++的一種程式語言嗎...@@?
最近在很多求職網站上看到...

--
偶開天眼覷紅塵
可憐身是眼中人....
--
☆ [Origin:椰林風情] [From: 140.112.156.103] [Login: **] [Post: **]
我愛咪咪扣
2003-12-08 21:18:21 UTC
Permalink
Post by 沒有暱稱
最近在很多求職網站上看到...
一種最接近機器語言的低階程式語言
在學習這個語言之前 你必須對電腦架構有基礎的了解
而且組合語言並不像C/C++有跨平台的特性
只能針對某種CPU寫它特定的組合語言
像是 Intel IA-32 組合語言或是R-3200(是嗎?)的MIPS組合語言
我這學期才開始在學 不曉得這樣形容恰不恰當
寫組合語言 就是在玩弄暫存器和旗標
連像在C++中 loop 這種簡單的動作 在組合語言裡
也必須精確利用暫存器作loop的動作
拿組合語言來認識電腦會是件有趣的事
但拿組合語言來吃飯 我想應該不會是件多好玩的事 ;p
--
* Post by powerair from 210-85-206-50.cm.apol.com.tw
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>
老貢生
2003-12-09 03:04:49 UTC
Permalink
Post by 我愛咪咪扣
Post by 沒有暱稱
最近在很多求職網站上看到...
一種最接近機器語言的低階程式語言
在學習這個語言之前 你必須對電腦架構有基礎的了解
而且組合語言並不像C/C++有跨平台的特性
只能針對某種CPU寫它特定的組合語言
像是 Intel IA-32 組合語言或是R-3200(是嗎?)的MIPS組合語言
我這學期才開始在學 不曉得這樣形容恰不恰當
寫組合語言 就是在玩弄暫存器和旗標
連像在C++中 loop 這種簡單的動作 在組合語言裡
也必須精確利用暫存器作loop的動作
拿組合語言來認識電腦會是件有趣的事
但拿組合語言來吃飯 我想應該不會是件多好玩的事 ;p
機器助憶巨集語言,也就是把原本的機器語言代號,
用一些代名詞來代表,因為有意義的字串總比無意義的號碼
好記,這是助憶功能。其次是集幾個機器語言用一個代名代替
,這是巨集功能。
孽緣~
2003-12-09 03:11:49 UTC
Permalink
Post by 我愛咪咪扣
Post by 沒有暱稱
最近在很多求職網站上看到...
一種最接近機器語言的低階程式語言
在學習這個語言之前 你必須對電腦架構有基礎的了解
而且組合語言並不像C/C++有跨平台的特性
只能針對某種CPU寫它特定的組合語言
像是 Intel IA-32 組合語言或是R-3200(是嗎?)的MIPS組合語言
我這學期才開始在學 不曉得這樣形容恰不恰當
寫組合語言 就是在玩弄暫存器和旗標
連像在C++中 loop 這種簡單的動作 在組合語言裡
也必須精確利用暫存器作loop的動作
拿組合語言來認識電腦會是件有趣的事
但拿組合語言來吃飯 我想應該不會是件多好玩的事 ;p
但是...比用高階軟體寫程式好賺多了

因為會寫程式的人太多了...

就算寫出一個應用程式來...也不算什麼

因為各式各樣的軟體都有....

用組合語言寫程式只是會很辛苦...因為組合語言真的很難懂

而且萬事都要自己去寫程式控制

不過它的能力很強喔!
--
 ◢◣ ︵︵ █▔◣ █▔█ █▔▔ █▔█ █▆▉ █ █▔█ █◣█ █▔● 
◢◤█◣◢◣ ︵︵ █ █ █▁◤ █▁▁ █▁█ ▉▉▉ █ █▁█ █◥█ █ █ 
夢之大地 逼逼ㄟ四 █▁◤ █ █ █▁▁ █ █ ▉▉▉ █▁ █ █ █ █ █▁◤ 
※ Origin: <bbs.ccns.ncku.edu.tw> ◆ From: pc192-192-96-188.ntntc.edu.tw 
Palatis
2003-12-09 17:36:44 UTC
Permalink
Post by 孽緣~
但是...比用高階軟體寫程式好賺多了
因為會寫程式的人太多了...
就算寫出一個應用程式來...也不算什麼
因為各式各樣的軟體都有....
用組合語言寫程式只是會很辛苦...因為組合語言真的很難懂
而且萬事都要自己去寫程式控制
不過它的能力很強喔!
我倒是持反對意見.

電腦是使用簡單的構成來處理複雜事物的工具. 因為要處理的事
物複雜度增加, 所以構成的複雜度也跟著增加. 對電腦來說, 每
個指令、每個動作都是細節, 但是對人來說就不是.

人沒有辦法將每個細節都記下來, 而必須經由有意義的輪廓來幫
助思考. 例如, 你從椅子上站起來的時候, 你還沒想到你是怎麼
站起來的, 你就已經站起來了. 你不會想 "身體先向前傾, 然後
將雙腿、背跟腰打直." 你更不會照顧到那一條肌肉必須伸、那
一條肌肉必須縮, 那一個關節轉了幾度、或是你消耗了多少卡路
里的熱量等等細節.

寫程式也是類似的道理, 高階語言幫你處理了那些細節, 所以你
可以把時間跟力氣省下來放在更高階的邏輯上. 而寫出來的程式
又幫你節省了時間, 於是你可以把省下來的時間拿去寫其他更多
程式 (或是拿來釣魚?)... 你可以把時間花在其他更值得的事情
上, 而不是拿來處理一些已經有制式處理法的細節上.

也許有人會說 "用組語寫的程式比高階語言寫的要跑得快!", 但
是我卻覺得程式執行的速度不全在寫出來的指令的量, 而是在處
理資料的邏輯. 通常越複雜的邏輯, 時間複雜度越小, 使用的時
間越少, 執行的速度越快 (例如 bubble sort vs quick sort).
而越複雜的邏輯, 則要求越多的細節, 也就是越多的程式碼.

我相信這個世界上有那種 "用組語寫程式, 而且寫出來的程式不
但沒有任何 bug, 跑起來也比其他人用高階語言寫的來得快速,
過了半年再回來看程式碼也只要花十分中溫習, 再加上 coding
assembly 的速度不輸給 coding 高階語言" 的人. 但是這個人
不是你, 更不會是我, 更或許全世界找不出幾個.

所以, 我用高階語言寫程式.

- --
最好的是男人 (man) !
請善用 Google (http://www.google.com/) !
追憶似水年華
2003-12-09 11:39:35 UTC
Permalink
Post by 孽緣~
因為會寫程式的人太多了...
就算寫出一個應用程式來...也不算什麼
因為各式各樣的軟體都有....
用組合語言寫程式只是會很辛苦...因為組合語言真的很難懂
語言的部分不難懂,難的是要花時間了解你要用的目標平台.....
不然的話....還是認命乖乖回去寫軟體就好...
Post by 孽緣~
而且萬事都要自己去寫程式控制
不過它的能力很強喔!
--

[Master Chang.]______________________________________________
企鵝寶寶工作隊 | http://3ybaby.v-club.net/ 
請大家幫忙翻譯KDE | http://i18n.linux.org.tw/ 
全像光學實驗室 | http://www.ccit.edu.tw/~c3hog/master.html
_____________________________________________________________
--
※ Origin: SayYA 資訊站 <bbs.sayya.org> 
◆ From: h48-164.sci.ccit.edu.tw
沒空
2003-12-10 08:47:48 UTC
Permalink
※ 引述《Palatis <***@gentoo.org.tw>, 看板: Programming》之銘言:
: 我倒是持反對意見.
: 電腦是使用簡單的構成來處理複雜事物的工具. 因為要處理的事
: 物複雜度增加, 所以構成的複雜度也跟著增加. 對電腦來說, 每
: 個指令、每個動作都是細節, 但是對人來說就不是.
: 人沒有辦法將每個細節都記下來, 而必須經由有意義的輪廓來幫
: 助思考. 例如, 你從椅子上站起來的時候, 你還沒想到你是怎麼
: 站起來的, 你就已經站起來了. 你不會想 "身體先向前傾, 然後
: 將雙腿、背跟腰打直." 你更不會照顧到那一條肌肉必須伸、那
: 一條肌肉必須縮, 那一個關節轉了幾度、或是你消耗了多少卡路
: 里的熱量等等細節.
: 寫程式也是類似的道理, 高階語言幫你處理了那些細節, 所以你
: 可以把時間跟力氣省下來放在更高階的邏輯上. 而寫出來的程式
: 又幫你節省了時間, 於是你可以把省下來的時間拿去寫其他更多
: 程式 (或是拿來釣魚?)... 你可以把時間花在其他更值得的事情
: 上, 而不是拿來處理一些已經有制式處理法的細節上.
如果沒有人會組合語言,你哪來的高階語言可以用?

組合語言不是人人都要學的
但不需要&不想學的人,也沒有理由反對它

: 也許有人會說 "用組語寫的程式比高階語言寫的要跑得快!", 但
: 是我卻覺得程式執行的速度不全在寫出來的指令的量, 而是在處
: 理資料的邏輯. 通常越複雜的邏輯, 時間複雜度越小, 使用的時
: 間越少, 執行的速度越快 (例如 bubble sort vs quick sort).
: 而越複雜的邏輯, 則要求越多的細節, 也就是越多的程式碼.
為什麼用組合語言不能寫複雜邏輯的程式?

無論用什麼語言來寫,最多能寫出速度差不多的程式
絕對不可能超越組合語言!
當然,都要以最佳寫法的程式來比較,不然還有什麼好比的?

組合語言的快是絕對的,代價是要花很多時間來寫
取捨在是否有必要用人的時間來換取執行的速度?
如果速度沒有重要到值得花時間的話,那高階語言當然是首選囉!

而且還有一些東西是非用組合語言來寫不可的,就不用多說了

: 我相信這個世界上有那種 "用組語寫程式, 而且寫出來的程式不
: 但沒有任何 bug, 跑起來也比其他人用高階語言寫的來得快速,
: 過了半年再回來看程式碼也只要花十分中溫習, 再加上 coding
: assembly 的速度不輸給 coding 高階語言" 的人. 但是這個人
: 不是你, 更不會是我, 更或許全世界找不出幾個.
: 所以, 我用高階語言寫程式.
很好,我也很贊同
不過卻沒必要因此而看輕低階語言吧!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.27.155
Palatis
2003-12-10 21:16:28 UTC
Permalink
Post by 沒空
: 我倒是持反對意見.
: 電腦是使用簡單的構成來處理複雜事物的工具. 因為要處理的事
: 物複雜度增加, 所以構成的複雜度也跟著增加. 對電腦來說, 每
: 個指令、每個動作都是細節, 但是對人來說就不是.
: 人沒有辦法將每個細節都記下來, 而必須經由有意義的輪廓來幫
: 助思考. 例如, 你從椅子上站起來的時候, 你還沒想到你是怎麼
: 站起來的, 你就已經站起來了. 你不會想 "身體先向前傾, 然後
: 將雙腿、背跟腰打直." 你更不會照顧到那一條肌肉必須伸、那
: 一條肌肉必須縮, 那一個關節轉了幾度、或是你消耗了多少卡路
: 里的熱量等等細節.
: 寫程式也是類似的道理, 高階語言幫你處理了那些細節, 所以你
: 可以把時間跟力氣省下來放在更高階的邏輯上. 而寫出來的程式
: 又幫你節省了時間, 於是你可以把省下來的時間拿去寫其他更多
: 程式 (或是拿來釣魚?)... 你可以把時間花在其他更值得的事情
: 上, 而不是拿來處理一些已經有制式處理法的細節上.
如果沒有人會組合語言,你哪來的高階語言可以用?
組合語言不是人人都要學的
但不需要&不想學的人,也沒有理由反對它
我反對的不是組合語言, 組語是很有趣的東西, 學起來也簡單,
但是寫起來很複雜. 如我所說, 要掌握每一個細節不是人類能輕
易做到的.
Post by 沒空
: 也許有人會說 "用組語寫的程式比高階語言寫的要跑得快!", 但
: 是我卻覺得程式執行的速度不全在寫出來的指令的量, 而是在處
: 理資料的邏輯. 通常越複雜的邏輯, 時間複雜度越小, 使用的時
: 間越少, 執行的速度越快 (例如 bubble sort vs quick sort).
: 而越複雜的邏輯, 則要求越多的細節, 也就是越多的程式碼.
為什麼用組合語言不能寫複雜邏輯的程式?
無論用什麼語言來寫,最多能寫出速度差不多的程式
絕對不可能超越組合語言!
當然,都要以最佳寫法的程式來比較,不然還有什麼好比的?
組合語言的快是絕對的,代價是要花很多時間來寫
取捨在是否有必要用人的時間來換取執行的速度?
如果速度沒有重要到值得花時間的話,那高階語言當然是首選囉!
而且還有一些東西是非用組合語言來寫不可的,就不用多說了
組合語言當然可以寫複雜邏輯的程式, 但是跟用高階語言寫比起來,
恐怕只會事半功倍. 請不要拿萬中選一的特例出來, 如果組語真的那
麼好寫, 那麼 1970 年流行的語言就不會是 c 了.

至於最佳寫法的程式, 你怎麼確定寫出來的程式是最佳寫法? 說不定
有更佳寫法呢? 說不定其他人想出來的最佳解法比你的最佳解法還要
更佳呢? 如果把時間都花在細節上了, 那來的時間去研究更佳解法?

我在寫 8051 的時候, 也會先用 c 寫, 再對轉出來的 asm code 作
performance tuning. 使用接近人類思考的語言構思, 多半能讓我較
快掌握程式的架構. 直接打 a = b 可以讓我少煩惱要把 0x1234 的
資料搬到 0x5678, 還是要放到 register, 還是要 push 進堆疊; 用
switch 可以讓我省下一堆思考要用 sjmp 還是 ljmp 的時間. 所以
我可以對真正浪費時間的地方最佳化, 而不是省那些省了好像沒省的
時間.
Post by 沒空
: 我相信這個世界上有那種 "用組語寫程式, 而且寫出來的程式不
: 但沒有任何 bug, 跑起來也比其他人用高階語言寫的來得快速,
: 過了半年再回來看程式碼也只要花十分中溫習, 再加上 coding
: assembly 的速度不輸給 coding 高階語言" 的人. 但是這個人
: 不是你, 更不會是我, 更或許全世界找不出幾個.
: 所以, 我用高階語言寫程式.
很好,我也很贊同
不過卻沒必要因此而看輕低階語言吧!
hmm... 我並沒有看清低階語言的意思, 如果讓您這麼認為, 請見諒.

我的意思是, 我沒有辦法用毛筆寫出很漂亮的字, 所以我選擇鋼筆.
不是因為討厭毛筆而不用毛筆, 而是因為我沒信心用毛筆寫出跟鋼筆
相同等級的字與速度, 所以才不用毛筆. 有人毛筆寫的比大部份人的
鋼筆還寫的好, 速度還要快, 相同大小的紙可以放入一樣多的字 (嘖
嘖...)... 但是這個人大概不會是你, 更不會是我, 更或許全世界找
不出幾個.

所以, 我用鋼筆寫字.

- --
最好的是男人 (man) !
請善用 Google (http://www.google.com/) !
沒空
2003-12-11 04:00:12 UTC
Permalink
※ 引述《Palatis <***@gentoo.org.tw>, 看板: Programming》之銘言:
: 組合語言當然可以寫複雜邏輯的程式, 但是跟用高階語言寫比起來,
: 恐怕只會事半功倍. 請不要拿萬中選一的特例出來, 如果組語真的那
: 麼好寫, 那麼 1970 年流行的語言就不會是 c 了.
組語本來就不是該流行的語言,但它是不可少,且必需存在的
而且,你說事半功倍我不認同,功倍是一定的,但怎麼會事半呢?

: 至於最佳寫法的程式, 你怎麼確定寫出來的程式是最佳寫法? 說不定
: 有更佳寫法呢? 說不定其他人想出來的最佳解法比你的最佳解法還要
: 更佳呢? 如果把時間都花在細節上了, 那來的時間去研究更佳解法?
「是不是最佳的寫法?說不定有更佳的寫法呢?」
這是不管用低階的組語或用中高階的 C/C++/Java 等,都會面臨的疑問

我特別指出要用最佳寫法來比較,不是說我一定能寫出最佳寫法
只是不想看到小白出來跟我吵說:「寫得好的C比寫得爛的組語要快!」
我相信你不會這樣說,但我聽過太多小白這樣說了,不得不防

致於有沒有時間去研究解法,我想那不是組語的問題
早在一開始我就說了,沒有時間就不要用組語,我一點也不反對高階語言

: 我在寫 8051 的時候, 也會先用 c 寫, 再對轉出來的 asm code 作
: performance tuning. 使用接近人類思考的語言構思, 多半能讓我較
: 快掌握程式的架構. 直接打 a = b 可以讓我少煩惱要把 0x1234 的
: 資料搬到 0x5678, 還是要放到 register, 還是要 push 進堆疊; 用
: switch 可以讓我省下一堆思考要用 sjmp 還是 ljmp 的時間. 所以
: 我可以對真正浪費時間的地方最佳化, 而不是省那些省了好像沒省的
: 時間.
跟前面一樣,我從來不覺得用組語可以節省人類的時間
但有這些時間花的人,總是能得到較好的收獲

如果你的程式速度不重要,你覺得就算用組語寫,省下的時間也好像沒省
那我也強烈建議你用 C 來寫

: hmm... 我並沒有看清低階語言的意思, 如果讓您這麼認為, 請見諒.
: 我的意思是, 我沒有辦法用毛筆寫出很漂亮的字, 所以我選擇鋼筆.
: 不是因為討厭毛筆而不用毛筆, 而是因為我沒信心用毛筆寫出跟鋼筆
: 相同等級的字與速度, 所以才不用毛筆. 有人毛筆寫的比大部份人的
: 鋼筆還寫的好, 速度還要快, 相同大小的紙可以放入一樣多的字 (嘖
: 嘖...)... 但是這個人大概不會是你, 更不會是我, 更或許全世界找
: 不出幾個.
: 所以, 我用鋼筆寫字.
當然,我沒辦法拿毛筆來跟用鋼筆寫字的人比快!
但如果我慢慢寫,卻能寫出很漂亮的字
而且這樣的人,相信全世界隨便撿都有
(其實我不會用真的毛筆,這只是順著你的文章所做的比喻)

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.27.155
Palatis
2003-12-11 06:05:04 UTC
Permalink
Post by 沒空
組語本來就不是該流行的語言,但它是不可少,且必需存在的
而且,你說事半功倍我不認同,功倍是一定的,但怎麼會事半呢?
「是不是最佳的寫法?說不定有更佳的寫法呢?」
這是不管用低階的組語或用中高階的 C/C++/Java 等,都會面臨的疑問
我特別指出要用最佳寫法來比較,不是說我一定能寫出最佳寫法
只是不想看到小白出來跟我吵說:「寫得好的C比寫得爛的組語要快!」
我相信你不會這樣說,但我聽過太多小白這樣說了,不得不防
致於有沒有時間去研究解法,我想那不是組語的問題
早在一開始我就說了,沒有時間就不要用組語,我一點也不反對高階語言
"寫得好的 C 比寫得爛的組語要快" 是當然的, vice versa.

我的意思是, 在 "自己跟自己比" 的前提之下, 我不相信大部份的
programmer 可以寫出比 C (或其他高階語言) 好的 asm (或其他低階語言)
code. 大部份的狀況下, 他們使用低階語言的功力應該是比高階語言差, 所
以這些人使用高階語言撰寫程式可以達到比低階語言 "事倍功半", 而這些
人用低階語言撰寫程式則會事半功倍. 如果要跟別人比, 我相信一定會有低
階語言比其他大部份人 (80%+) 高階語言還強的人, 跟別人比的話就人外有
人天外有天, 永遠不可能有最佳解.

永遠都有特例, 如果您剛好不是那 80%+ 的人, 請不要拿少數人才有的特別
出來說嘴.
Post by 沒空
: 我在寫 8051 的時候, 也會先用 c 寫, 再對轉出來的 asm code 作
: performance tuning. 使用接近人類思考的語言構思, 多半能讓我較
: 快掌握程式的架構. 直接打 a = b 可以讓我少煩惱要把 0x1234 的
: 資料搬到 0x5678, 還是要放到 register, 還是要 push 進堆疊; 用
: switch 可以讓我省下一堆思考要用 sjmp 還是 ljmp 的時間. 所以
: 我可以對真正浪費時間的地方最佳化, 而不是省那些省了好像沒省的
: 時間.
跟前面一樣,我從來不覺得用組語可以節省人類的時間
但有這些時間花的人,總是能得到較好的收獲
如果你的程式速度不重要,你覺得就算用組語寫,省下的時間也好像沒省
那我也強烈建議你用 C 來寫
根據狀況的不同選擇不同的工具, 應該是很基本的道理. 而根據狀況的不同
配合使用不同的工具, 也是很基本的道理.

對一些特例, 使用組語有其必要. 但是 "組語很強, 什麼都可以做到!" 這
點我不贊同. 你去一家餐廳吃飯, 覺得他的菜好吃. 這到底是鍋子、爐子的
功勞嗎? 還是廚師的功勞? 我相信有辦法的廚師, 用蒸籠也能做出荷包蛋.
但是這種廚師多不多? 大部份的廚師有沒有這種功夫?

我當初是針對這篇回的:
=== cut here ===
Post by 沒空
但是...比用高階軟體寫程式好賺多了
因為會寫程式的人太多了...
就算寫出一個應用程式來...也不算什麼
因為各式各樣的軟體都有....
用組合語言寫程式只是會很辛苦...因為組合語言真的很難懂
而且萬事都要自己去寫程式控制
不過它的能力很強喔!
我倒是持反對意見.
[... 自己寫的東西略 ...]
所以, 我用高階語言寫程式.
=== cut here ===
請不要認為我認為 "低階語言沒有存在的價值! 大家都應該用高階語言寫
程式!" 這樣. 我認為的是 "語言本身沒有好壞, 但是高階語言會比較適
合讓社會大眾使用."
Post by 沒空
: hmm... 我並沒有看清低階語言的意思, 如果讓您這麼認為, 請見諒.
: 我的意思是, 我沒有辦法用毛筆寫出很漂亮的字, 所以我選擇鋼筆.
: 不是因為討厭毛筆而不用毛筆, 而是因為我沒信心用毛筆寫出跟鋼筆
: 相同等級的字與速度, 所以才不用毛筆. 有人毛筆寫的比大部份人的
: 鋼筆還寫的好, 速度還要快, 相同大小的紙可以放入一樣多的字 (嘖
: 嘖...)... 但是這個人大概不會是你, 更不會是我, 更或許全世界找
: 不出幾個.
: 所以, 我用鋼筆寫字.
當然,我沒辦法拿毛筆來跟用鋼筆寫字的人比快!
但如果我慢慢寫,卻能寫出很漂亮的字
而且這樣的人,相信全世界隨便撿都有
(其實我不會用真的毛筆,這只是順著你的文章所做的比喻)
所以你每篇文章都用毛筆寫嗎? 還是只有在需要很漂亮的字的時候才用毛
筆寫? (我想現在大概都用電腦打了 :P)

- --
最好的是男人 (man) !
請善用 Google (http://www.google.com/) !
叮叮噹叮叮噹~~
2003-12-11 04:17:47 UTC
Permalink
※ 引述《***@bbs.ccns.ncku.edu.tw (孽緣~)》之銘言:
: ※ 引述《***@bbs.cis.nctu.edu.tw (我愛咪咪扣)》之銘言:
: > 一種最接近機器語言的低階程式語言
: > 在學習這個語言之前 你必須對電腦架構有基礎的了解
: > 而且組合語言並不像C/C++有跨平台的特性
: > 只能針對某種CPU寫它特定的組合語言
: > 像是 Intel IA-32 組合語言或是R-3200(是嗎?)的MIPS組合語言
: > 我這學期才開始在學 不曉得這樣形容恰不恰當
: > 寫組合語言 就是在玩弄暫存器和旗標
: > 連像在C++中 loop 這種簡單的動作 在組合語言裡
: > 也必須精確利用暫存器作loop的動作
: > 拿組合語言來認識電腦會是件有趣的事
: > 但拿組合語言來吃飯 我想應該不會是件多好玩的事 ;p
: 但是...比用高階軟體寫程式好賺多了

那....為何不用高階語言寫出轉成低階語言的程式
不是比較方便嗎?(沒有辦法可行?)


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.223.93.229
自由半徑
2003-12-11 05:18:40 UTC
Permalink
※ 引述《***@ptt.cc (叮叮噹叮叮噹~~)》之銘言:
: ※ 引述《***@bbs.ccns.ncku.edu.tw (孽緣~)》之銘言:
: : 但是...比用高階軟體寫程式好賺多了
: 那....為何不用高階語言寫出轉成低階語言的程式
: 不是比較方便嗎?(沒有辦法可行?)

assembly code最後也是得透過assembler轉成 machine code
高階語言(ex: c++) 一樣透過 c++ compiler轉成machine code

一般所謂的方便都是寫成高階語言然後用compiler compile成machine code,
除非特別需要, 不然沒必要先轉成assembly code再用assembler轉成machine code.

再白話一點, 就是不要脫褲子放屁...
--
※ Origin: 貓空行館 ◆ From: Hoops.cs.nccu.edu.tw
Palatis
2003-12-11 05:30:22 UTC
Permalink
Post by 自由半徑
: : 但是...比用高階軟體寫程式好賺多了
: 那....為何不用高階語言寫出轉成低階語言的程式
: 不是比較方便嗎?(沒有辦法可行?)
assembly code最後也是得透過assembler轉成 machine code
高階語言(ex: c++) 一樣透過 c++ compiler轉成machine code
一般所謂的方便都是寫成高階語言然後用compiler compile成machine code,
除非特別需要, 不然沒必要先轉成assembly code再用assembler轉成machine code.
再白話一點, 就是不要脫褲子放屁...
對不起, 還是會有中間檔, 也可以要求 compiler 輸出 assembly.

- --
最好的是男人 (man) !
請善用 Google (http://www.google.com/) !
可惡的孤鸞年
2003-12-11 05:36:04 UTC
Permalink
Post by 自由半徑
: : 但是...比用高階軟體寫程式好賺多了
: 那....為何不用高階語言寫出轉成低階語言的程式
: 不是比較方便嗎?(沒有辦法可行?)
assembly code最後也是得透過assembler轉成 machine code
高階語言(ex: c++) 一樣透過 c++ compiler轉成machine code
一般所謂的方便都是寫成高階語言然後用compiler compile成machine code,
除非特別需要, 不然沒必要先轉成assembly code再用assembler轉成machine code.
再白話一點, 就是不要脫褲子放屁...
我倒是覺得在某些狀況下這種行為是必要的,脫褲子放屁之說太嚴重了。

有時候需要快速的運算,或是要求ISR的Latency和Delay能夠盡量短,或是希望直接去填週
邊的暫存器,甚至是CPU本身的特殊功能暫存器,不用組合語言就是綁手綁腳,甚至是辦不
到,就算是用inline assembly也不見得能成功。在要求開發時間和效能的同時,把某些
C/C++ code先翻成組合語言,做效能調校,再翻成object code,是常常用到的做法。
嗯....^^ 意外
2003-12-11 12:24:00 UTC
Permalink
Post by 叮叮噹叮叮噹~~
: 但是...比用高階軟體寫程式好賺多了
那....為何不用高階語言寫出轉成低階語言的程式
不是比較方便嗎?(沒有辦法可行?)
有… 但會有誤差 大致上還可以

--
# Origin #  高應科大 楓城  bbs.kuas.edu.tw 
# Author # adsl-sta-kao-140-108.so-net.net.tw
沒空
2003-12-11 09:10:01 UTC
Permalink
※ 引述《***@bbs.cs.nccu.edu.tw (自由半徑)》之銘言:
: ※ 引述《***@ptt.cc (叮叮噹叮叮噹~~)》之銘言:
: : 那....為何不用高階語言寫出轉成低階語言的程式
: : 不是比較方便嗎?(沒有辦法可行?)
: assembly code最後也是得透過assembler轉成 machine code
: 高階語言(ex: c++) 一樣透過 c++ compiler轉成machine code
: 一般所謂的方便都是寫成高階語言然後用compiler compile成machine code,
: 除非特別需要, 不然沒必要先轉成assembly code再用assembler轉成machine code.
: 再白話一點, 就是不要脫褲子放屁...
脫褲子放屁,講得太嚴重了!

事實上,是真的有這種東西的
好處是可以直接產生執行檔
也可以視需要修改 assembly code 後再組譯

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.27.155
沒空
2003-12-11 09:33:41 UTC
Permalink
※ 引述《Palatis <***@gentoo.org.tw>, 看板: Programming》之銘言:
: "寫得好的 C 比寫得爛的組語要快" 是當然的, vice versa.
對,這是當然的
但若有人用這個理由來反組語,我就覺得他是小白,因為這跟本是一句廢話!
寫的好的任何語言,永遠比寫得爛的其它語言要快

: 我的意思是, 在 "自己跟自己比" 的前提之下, 我不相信大部份的
: programmer 可以寫出比 C (或其他高階語言) 好的 asm (或其他低階語言)
: code. 大部份的狀況下, 他們使用低階語言的功力應該是比高階語言差, 所
: 以這些人使用高階語言撰寫程式可以達到比低階語言 "事倍功半", 而這些
: 人用低階語言撰寫程式則會事半功倍. 如果要跟別人比, 我相信一定會有低
: 階語言比其他大部份人 (80%+) 高階語言還強的人, 跟別人比的話就人外有
: 人天外有天, 永遠不可能有最佳解.
: 永遠都有特例, 如果您剛好不是那 80%+ 的人, 請不要拿少數人才有的特別
: 出來說嘴.
好,你要說大部份的人怎樣怎樣,我是不反對
但相信想用組語來寫東西的人,就一定不是那大部份的人了
有人會明明知道自己用組語寫會比用c寫還爛,結果還拼了命的在用組語嗎?
就算真有這樣的人,那或許會有你說的「事倍功半」的情形
但那是個人問題,還是不能怪到組語頭上啊

會想用組語的人,就是覺得這個部份若用組語來寫,應該會比用c來寫得好
若是連判斷該用組語還是該用高階語言都不會,那我想他還是不要用組語了吧!

: 根據狀況的不同選擇不同的工具, 應該是很基本的道理. 而根據狀況的不同
: 配合使用不同的工具, 也是很基本的道理.
: 對一些特例, 使用組語有其必要. 但是 "組語很強, 什麼都可以做到!" 這
: 點我不贊同. 你去一家餐廳吃飯, 覺得他的菜好吃. 這到底是鍋子、爐子的
: 功勞嗎? 還是廚師的功勞? 我相信有辦法的廚師, 用蒸籠也能做出荷包蛋.
: 但是這種廚師多不多? 大部份的廚師有沒有這種功夫?
: 我當初是針對這篇回的:
: === cut here ===
: 孽緣~ wrote:
: > 但是...比用高階軟體寫程式好賺多了
: > 因為會寫程式的人太多了...
: > 就算寫出一個應用程式來...也不算什麼
: > 因為各式各樣的軟體都有....
: > 用組合語言寫程式只是會很辛苦...因為組合語言真的很難懂
: > 而且萬事都要自己去寫程式控制
: > 不過它的能力很強喔!
: 我倒是持反對意見.
: [... 自己寫的東西略 ...]
: 所以, 我用高階語言寫程式.
: === cut here ===
: 請不要認為我認為 "低階語言沒有存在的價值! 大家都應該用高階語言寫
: 程式!" 這樣. 我認為的是 "語言本身沒有好壞, 但是高階語言會比較適
: 合讓社會大眾使用."
我也認同你說的話,但前面那篇卻沒有說「組語什麼都可以做到」
這句話是你自己的加上去的 @_@
他只有說「組語的能力很強喔」,而我覺得他說的沒錯啊
所以我還是搞不懂你在不贊同什麼
廚師?鍋子、爐子?蒸籠?還是那顆荷包蛋?

: 所以你每篇文章都用毛筆寫嗎? 還是只有在需要很漂亮的字的時候才用毛
: 筆寫? (我想現在大概都用電腦打了 :P)
當然是只有在需要很漂亮的字時才用毛筆

所以如果你是在不贊同每個字都用毛筆寫,我就能理解
但我從第一篇回文開始,就是抱持著:「有需要才用組語」的觀點啊

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.27.155
Palatis
2003-12-11 20:40:27 UTC
Permalink
Post by 沒空
: 根據狀況的不同選擇不同的工具, 應該是很基本的道理. 而根據狀況的不同
: 配合使用不同的工具, 也是很基本的道理.
: 對一些特例, 使用組語有其必要. 但是 "組語很強, 什麼都可以做到!" 這
: 點我不贊同. 你去一家餐廳吃飯, 覺得他的菜好吃. 這到底是鍋子、爐子的
: 功勞嗎? 還是廚師的功勞? 我相信有辦法的廚師, 用蒸籠也能做出荷包蛋.
: 但是這種廚師多不多? 大部份的廚師有沒有這種功夫?
: === cut here ===
: > 但是...比用高階軟體寫程式好賺多了
: > 因為會寫程式的人太多了...
: > 就算寫出一個應用程式來...也不算什麼
: > 因為各式各樣的軟體都有....
: > 用組合語言寫程式只是會很辛苦...因為組合語言真的很難懂
: > 而且萬事都要自己去寫程式控制
: > 不過它的能力很強喔!
: 我倒是持反對意見.
: [... 自己寫的東西略 ...]
: 所以, 我用高階語言寫程式.
: === cut here ===
: 請不要認為我認為 "低階語言沒有存在的價值! 大家都應該用高階語言寫
: 程式!" 這樣. 我認為的是 "語言本身沒有好壞, 但是高階語言會比較適
: 合讓社會大眾使用."
我也認同你說的話,但前面那篇卻沒有說「組語什麼都可以做到」
他只有說「組語的能力很強喔」,而我覺得他說的沒錯啊
所以我還是搞不懂你在不贊同什麼
廚師?鍋子、爐子?蒸籠?還是那顆荷包蛋?
我反對 "用木炭來作菜比用烤箱來作菜好賺多了. 因為會用烤箱的人太多了,
就算做出北京烤鴨來, 也不算什麼, 因為各式各樣的烤鴨都有. 用木炭來做菜
只是會很辛苦, 因為木炭真的很難用, 而且溫度跟火候要自己掌握. 不過木炭
的能力很強喔!"

你看到有人用榔頭來鎖螺絲, 會說 "這隻榔頭好強阿!" 還是會說 "這個用榔頭
鎖螺絲的人好強阿!" 呢?
Post by 沒空
: 所以你每篇文章都用毛筆寫嗎? 還是只有在需要很漂亮的字的時候才用毛
: 筆寫? (我想現在大概都用電腦打了 :P)
當然是只有在需要很漂亮的字時才用毛筆
所以如果你是在不贊同每個字都用毛筆寫,我就能理解
但我從第一篇回文開始,就是抱持著:「有需要才用組語」的觀點啊
我抱的是 "沒必要就別用組語" 跟 "確定真有必要才用組語" 的觀念...
這應該算是共識吧...??

- --
最好的是男人 (man) !
請善用 Google (http://www.google.com/) !
自由半徑
2003-12-11 10:02:26 UTC
Permalink
�� �ޭz�***@ptt.cc (�S��)�n���ʨ��G
: �� �ޭz�***@bbs.cs.nccu.edu.tw (�ۥѥb�|)�n���ʨ��G
: : assembly code�̫��]�O�o�z�Lassembler�ন machine code
: : �����y��(ex: c++) �@�˳z�L c++ compiler�নmachine code
: : �@���ҿת����K���O�g�������y���M����compiler compile��machine code,
: : ���D�S�O�ݭn, ���M�S���n���নassembly code�A��assembler�নmachine code.
: : �A�ոܤ@�I, �N�O���n���Ǥl����...
: ���Ǥl�񧾡A��o���Y���F�I
: �ƹ��W�A�O�u�����o�تF�誺
: �n�B�O�i�H�������Ͱ�����
: �]�i�H���ݭn�ק� assembly code ���A��Ķ

�ҥH�o�N�O���ݭn�v�F..

�S�o�ӻݭn�ӷQ�a�ন�ջy�A�নmachine code���@�IJv����.........

��, �C�ӤH���ݨD���P.

�]�b�������e���r�_�ǹD�p.


--
/* CONFIDENTIALITY : */
/* This email and any attachments are confidential and */
/* may be privileged. If you are not a named recipient, */
/* please notify the sender immediately and do not disclose */
/* the contents to another person, use it for any purpose */
/* or store or copy the information in any medium. */
--
�� Origin: �ߪŦ��] �� From: Hoops.cs.nccu.edu.tw
天龍舞兮雲飛揚
2003-12-11 09:53:27 UTC
Permalink
Post by 沒空
: "寫得好的 C 比寫得爛的組語要快" 是當然的, vice versa.
對,這是當然的
但若有人用這個理由來反組語,我就覺得他是小白,因為這跟本是一句廢話!
寫的好的任何語言,永遠比寫得爛的其它語言要快
: 我的意思是, 在 "自己跟自己比" 的前提之下, 我不相信大部份的
: programmer 可以寫出比 C (或其他高階語言) 好的 asm (或其他低階語言)
: code. 大部份的狀況下, 他們使用低階語言的功力應該是比高階語言差, 所
: 以這些人使用高階語言撰寫程式可以達到比低階語言 "事倍功半", 而這些
: 人用低階語言撰寫程式則會事半功倍. 如果要跟別人比, 我相信一定會有低
: 階語言比其他大部份人 (80%+) 高階語言還強的人, 跟別人比的話就人外有
: 人天外有天, 永遠不可能有最佳解.
: 永遠都有特例, 如果您剛好不是那 80%+ 的人, 請不要拿少數人才有的特別
: 出來說嘴.
好,你要說大部份的人怎樣怎樣,我是不反對
但相信想用組語來寫東西的人,就一定不是那大部份的人了
有人會明明知道自己用組語寫會比用c寫還爛,結果還拼了命的在用組語嗎?
就算真有這樣的人,那或許會有你說的「事倍功半」的情形
但那是個人問題,還是不能怪到組語頭上啊
會想用組語的人,就是覺得這個部份若用組語來寫,應該會比用c來寫得好
若是連判斷該用組語還是該用高階語言都不會,那我想他還是不要用組語了吧!
: 根據狀況的不同選擇不同的工具, 應該是很基本的道理. 而根據狀況的不同
: 配合使用不同的工具, 也是很基本的道理.
: 對一些特例, 使用組語有其必要. 但是 "組語很強, 什麼都可以做到!" 這
: 點我不贊同. 你去一家餐廳吃飯, 覺得他的菜好吃. 這到底是鍋子、爐子的
: 功勞嗎? 還是廚師的功勞? 我相信有辦法的廚師, 用蒸籠也能做出荷包蛋.
: 但是這種廚師多不多? 大部份的廚師有沒有這種功夫?
: === cut here ===
: 我倒是持反對意見.
: [... 自己寫的東西略 ...]
: 所以, 我用高階語言寫程式.
: === cut here ===
: 請不要認為我認為 "低階語言沒有存在的價值! 大家都應該用高階語言寫
: 程式!" 這樣. 我認為的是 "語言本身沒有好壞, 但是高階語言會比較適
: 合讓社會大眾使用."
我也認同你說的話,但前面那篇卻沒有說「組語什麼都可以做到」
他只有說「組語的能力很強喔」,而我覺得他說的沒錯啊
所以我還是搞不懂你在不贊同什麼
廚師?鍋子、爐子?蒸籠?還是那顆荷包蛋?
: 所以你每篇文章都用毛筆寫嗎? 還是只有在需要很漂亮的字的時候才用毛
: 筆寫? (我想現在大概都用電腦打了 :P)
當然是只有在需要很漂亮的字時才用毛筆
所以如果你是在不贊同每個字都用毛筆寫,我就能理解
但我從第一篇回文開始,就是抱持著:「有需要才用組語」的觀點啊
這個根本沒什麼好爭的嘛..兩種語言用途本來就不同阿..
像C,Java那種高階語言..適合用來寫應用程式..
而組語這種低階語言..適合用來做硬體控制..
有人會說C也可以寫硬體控制啊..當然行!但效能不會比組語好..
組語能不能寫應用程式呢?當然也行..但是用C可以達到更好的效果嘛..
所以高階語言內的Java啊VC啊Delphi啊VB啊..他們在程式段內都允許內嵌組語了..
因為應用層面不同啊..
--
吵什麼?
混在一起做組語C++吧~
--
--
 ◣ ███ ███ ☆  Post by Lovesea 
 ◢█ ▉▉█ █▇█ ★ From sw59-245-104.adsl.seed.net.tw 
◥█◤ ﹉ ﹍ ﹋ 月光海洋BBS 《mobbs.stut.edu.tw》 163.26.220.130 
潛心靜修
2003-12-11 11:06:12 UTC
Permalink
有的平台支援將C++ or C轉成assembly 再轉成machine code
這絕不是脫褲子放屁 因為compiler寫的不好 直接轉效能很差
轉成assembly後 看哪裡的運算量大 bottlenect落在哪段程式
再將那段assembly code人工地作最佳化
--
如果你用1G的cpu當然沒問題了
又如果用40MIPS的cpu想做個G.729 G.723.1之類的
不這樣做 光靠compiler就直接硬幹 是行不通的
※ 引述《***@ptt.cc (沒空)》之銘言:
: ※ 引述《***@bbs.cs.nccu.edu.tw (自由半徑)》之銘言:
: : assembly code最後也是得透過assembler轉成 machine code
: : 高階語言(ex: c++) 一樣透過 c++ compiler轉成machine code
: : 一般所謂的方便都是寫成高階語言然後用compiler compile成machine code,
: : 除非特別需要, 不然沒必要先轉成assembly code再用assembler轉成machine code.
: : 再白話一點, 就是不要脫褲子放屁...
: 脫褲子放屁,講得太嚴重了!
: 事實上,是真的有這種東西的
: 好處是可以直接產生執行檔
: 也可以視需要修改 assembly code 後再組譯

--
靜靜的坐在一旁 就是靜靜地發呆 靜靜地聽著音樂
拿起一杯茶 咖啡
在這緊張 忙碌的生活中 這似乎變成了一種享受
滷蛋~~~

--
         ▁▁
 無界天地任我行 ▕無限▏  star.ee.ttu.edu.tw
 浩瀚宇宙養吾心 ▕星雲▏拂衣藏劍處(203.69.97.52 )
         ▔▔
h***@mobbs.stut.edu.tw
2003-12-12 02:22:03 UTC
Permalink
Post by Palatis
我抱的是 "沒必要就別用組語" 跟 "確定真有必要才用組語" 的觀念...
這應該算是共識吧...??
使用組語是因為有速度,硬體成本,記憶容量有極大的優勢,就以單晶片來說

如果要使用單晶片來開發產品,組語是最佳選擇,如果系統很大

可以選擇使用高階語言搭配組合語言,如此一來不僅有結構性,速度也不會降很多


反觀現在的個人電腦,硬碟超大,記憶體超多,CPU更不用講,這種平台還需要組語嗎?

答案是要的,只是必要使用組語的時機已經大大減少了,就算想使用組語來寫程式

我建議也是使用高階搭配組語的方式,將來若是系統越來越大,速度一定會比

全部都使用高階語言來得快,可讀性與結構性也不會輸給它。
--
 ◣ ███ ███ ☆  Post by hawkeye 
 ◢█ ▉▉█ █▇█ ★ From 218-165-54-59.HINET-IP.hinet.net 
◥█◤ ﹉ ﹍ ﹋ 月光海洋BBS 《mobbs.stut.edu.tw》 163.26.220.130 
三億兩千萬大散戶
2003-12-13 01:09:35 UTC
Permalink
可是也有聽說現在的compiler編譯出來的程式
效率上可能高於用組語寫的程式
因為現在的CPU已經太複雜了
什麼pipeline, HT 那些有的沒的東西
程式絕對不會是一行一行的執行
而compiler可以把code重新編排成最佳化的形式
這是直接寫組語所難辦到的
--
※ Origin: 貓空行館 ◆ From: u52-220.u203-203.giga.net.tw
二十七歲的單車
2003-12-13 01:57:58 UTC
Permalink
Post by 三億兩千萬大散戶
可是也有聽說現在的compiler編譯出來的程式
效率上可能高於用組語寫的程式
因為現在的CPU已經太複雜了
什麼pipeline, HT 那些有的沒的東西
程式絕對不會是一行一行的執行
而compiler可以把code重新編排成最佳化的形式
這是直接寫組語所難辦到的
如果是Embedded system 許多時候還是必須靠組語才能作最佳化
compiler沒那麼厲害
我可以很篤定的說 在最佳化的場合
優秀韌體工程師寫出來的code 會比complier編出來的好


--
願景 ˙ 意志 ˙ 成就

一個人的力量
一個人可以 鼓舞整個國家 遠離大蕭條 美 國 總 統
一個人可以 帶領世界 贏得最後勝利 羅斯福
一個人可以 在所有人的胸中 放一把火 (1882-1945)
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: 211.75.143.19
Palatis
2003-12-13 04:17:58 UTC
Permalink
Post by 二十七歲的單車
Post by 三億兩千萬大散戶
可是也有聽說現在的compiler編譯出來的程式
效率上可能高於用組語寫的程式
因為現在的CPU已經太複雜了
什麼pipeline, HT 那些有的沒的東西
程式絕對不會是一行一行的執行
而compiler可以把code重新編排成最佳化的形式
這是直接寫組語所難辦到的
如果是Embedded system 許多時候還是必須靠組語才能作最佳化
compiler沒那麼厲害
我可以很篤定的說 在最佳化的場合
優秀韌體工程師寫出來的code 會比complier編出來的好
但是優秀韌體工程師寫出來的會比 compiler 編出來的貴很多.

值不值呢? 天知道...

- --
最好的是男人 (man) !
請善用 Google (http://www.google.com/) !
h***@mobbs.stut.edu.tw
2003-12-14 11:06:28 UTC
Permalink
Post by 二十七歲的單車
如果是Embedded system 許多時候還是必須靠組語才能作最佳化
compiler沒那麼厲害
我可以很篤定的說 在最佳化的場合
優秀韌體工程師寫出來的code 會比complier編出來的好
嗯嗯
沒錯! 編譯器不是為特定產品所開發的,當然不是最佳化,但卻是最有結構性的
--
 ◣ ███ ███ ☆  Post by hawkeye 
 ◢█ ▉▉█ █▇█ ★ From 218-165-57-121.HINET-IP.hinet.net 
◥█◤ ﹉ ﹍ ﹋ 月光海洋BBS 《mobbs.stut.edu.tw》 163.26.220.130 
沒有暱稱
2003-12-18 22:31:22 UTC
Permalink
問一個非常簡單的問題...
compiler是不事就是把c這種高階語言轉呈組合語言???
Post by h***@mobbs.stut.edu.tw
嗯嗯
沒錯! 編譯器不是為特定產品所開發的,當然不是最佳化,但卻是最有結構性的
--
☆ [Origin:椰林風情] [From: 140.112.156.103] [Login: **] [Post: **]
冰冰老樹
2003-12-19 17:34:31 UTC
Permalink
Post by 沒有暱稱
問一個非常簡單的問題...
compiler是不事就是把c這種高階語言轉呈組合語言???
Post by h***@mobbs.stut.edu.tw
嗯嗯
沒錯! 編譯器不是為特定產品所開發的,當然不是最佳化,但卻是最有結構性的
是轉成機器語言~~ 有二進位碼組成~~ 而不是組語~~
--
☆ [Origin:椰林風情] [From: adsl-sta-tpe-64-82-66.so-ne] [Login: **] [Post: **]
Loading...