討論區快速選單
知識庫快速選單
軟體開發過程中有哪些資安漏洞? 網路投保旅行平安險 網路投保旅行平安險
[ 回上頁 ] [ 討論區發言規則 ]
如果有人問你c語言和組合語言有什麼不同,你會怎麼回?
更改我的閱讀文章字型大小
作者 : dino0303(dino)
[ 貼文 74 | 人氣 9125 | 評價 30 | 評價/貼文 0.41 | 送出評價 34 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/25 上午 10:54:22
大家好,
     今天突然被同學問到c語言和組合語言有什麼不同,結果我回答一個有結構,一個沒有。同學的表情看看來怪怪的,所以想請問一下大家的看法,謝謝。
作者 : davidlai(David) 貼文超過200則
[ 貼文 284 | 人氣 78 | 評價 1680 | 評價/貼文 5.92 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人dino0303註記此篇回應為很有道理 2005/8/25 上午 11:26:41
結不結構化應該跟寫法比較有關, 跟到底哪一種語言關係不大, 畢竟結構化程式設計是一種概念而已
作者 : dino0303(dino)
[ 貼文 74 | 人氣 9125 | 評價 30 | 評價/貼文 0.41 | 送出評價 34 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/25 上午 11:54:29

>結不結構化應該跟寫法比較有關, 跟到底哪一種語言關係不大, 畢竟結構化程式設計是一種概念而已

先謝謝,我知道我的回答一定是沒有辦法被接受,所以同學才會出現奇怪的表情。
所以這也變成我的疑問了。
所以假如今天換成是你被問到c語言和組合語言有什麼不同,你會想怎麼回答呢?
作者 : properwu(james)
[ 貼文 67 | 人氣 5255 | 評價 530 | 評價/貼文 7.91 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人dino0303註記此篇回應為很有道理 2005/8/25 下午 12:06:32
組合語言是一種表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優點是佔用資源少、程序執行效率高。

C語言是一種結構化的高級語言。其優點是可讀性高,移植容易,是普遍使用的一種計算機語言。缺點是佔用資源較多,執行效率沒有組合語言高。
作者 : ghost_liao(ghost) 貼文超過200則人氣指數超過10000點
[ 貼文 367 | 人氣 13998 | 評價 1230 | 評價/貼文 3.35 | 送出評價 94 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人dino0303註記此篇回應為很有道理 2005/8/25 下午 12:45:45
以下是我個人看書後的淺見

所謂 c語言和組合語言有什麼不同
書上說
一個為低階語言->>>組合語言
一個為中高階語言->>>c語言
至於低階語言與中高階語言有什麼不同呢
在相關的計算機概論上有很多比較

其中我個人覺得最有印想且最深刻的是
低階語言的速度快,但可攜性低
而中高階語言速度雖然比低階語言慢,但可攜性高

如果要舉個例子
就已市面上的『單晶片』為例好了
每種不同廠牌的單晶片都有屬於自己的組合語言,並且大多不能共用
但是若使用c語言來開發,則大部分的程式碼幾乎都可以共用
由此可以看出我上面所敘述之特性

以上為我客人淺見
希望對你有所幫助
作者 : seanchang(H) Assembly卓越專家貼文超過1000則
[ 貼文 1200 | 人氣 773 | 評價 3240 | 評價/貼文 2.7 | 送出評價 43 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/25 下午 02:01:11
>C語言是一種結構化的高級語言。其優點是可讀性高,移植容易,是普遍使用的一種計算機語言。缺點是佔用資源較多,執行效率沒有組合語言高。
執行效率一說其實沒有意義, 程式的執行效率決定在演算法, 而不是程式語言.
作者 : startrek(]CALL-151)
[ 貼文 86 | 人氣 2815 | 評價 310 | 評價/貼文 3.6 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/25 下午 11:45:28
沒用過任合高階,所以我沒法比較,不過我喜歡ASM的自由(如同寫作分成自由作家及專業作家一樣)
作者 : kestrel(Kestrel)
[ 貼文 107 | 人氣 198 | 評價 850 | 評價/貼文 7.94 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/31 上午 09:50:43
>執行效率一說其實沒有意義, 程式的執行效率決定在演算法, 而不是程式語言.

在比較語言譯器產出的碼之執行效率, 那當然是在 "相同的演算法" 的情況下, 比較才有意義!

有人教你「用組語時, 腦子只想到較差的演算法; 用高階語言時, 腦子才會想到較優秀的演算法」嗎?
作者 : chiba78(コネヘスゆマ)
[ 貼文 48 | 人氣 1282 | 評價 150 | 評價/貼文 3.12 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/31 下午 06:43:06
一個是寫給人看的,另一個是寫給電腦看的^^
作者 : seanchang(H) Assembly卓越專家貼文超過1000則
[ 貼文 1200 | 人氣 773 | 評價 3240 | 評價/貼文 2.7 | 送出評價 43 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/1 下午 12:45:35
>>執行效率一說其實沒有意義, 程式的執行效率決定在演算法, 而不是程式語言.
>在比較語言譯器產出的碼之執行效率, 那當然是在 '相同的演算法' 的情況下, 比較才有意義!
>有人教你「用組語時, 腦子只想到較差的演算法; 用高階語言時, 腦子才會想到較優秀的演算法」嗎?
>
如果演算法一樣的話, 那麼執行效率就受CPU種類的影響.而不是程式語言的影響.

作者 : dank8435(Daniel)討論區板主 資訊類作業求救優秀好手貼文超過200則
[ 貼文 415 | 人氣 7059 | 評價 2010 | 評價/貼文 4.84 | 送出評價 11 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/1 下午 01:09:41
小弟認為,
與其比較速率, 倒不如比較兩者在電腦領域中的分層!
C應該比組語更高層, 也更接近使用者!

而至於效率的話, 應該也跟分層有關吧!
C在編譯的過程中會經過組語階段, 也就是說C語法會先被轉譯成組語語法,
再被轉成機器語言! 而組語就直接轉機器語言了!多了一層轉換, 當然速度有差!
這也就是為何Java效率一直令人詬病的原因了! 因為Java還多了一層JVM!

個人愚見, 如有錯誤請指正!
作者 : sunny_gong(simula)討論區板主 C++頂尖高手貼文超過500則人氣指數超過30000點
[ 貼文 892 | 人氣 45047 | 評價 7220 | 評價/貼文 8.09 | 送出評價 108 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/1 下午 01:35:56
「多了一層轉換,速度當然有差」這個推論中間還缺一些東西,必須是C編譯器轉換出來的組語在執行效率上沒有手寫來得好,這樣才成立。
作者 : seanchang(H) Assembly卓越專家貼文超過1000則
[ 貼文 1200 | 人氣 773 | 評價 3240 | 評價/貼文 2.7 | 送出評價 43 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/1 下午 01:56:32

>小弟認為,
>與其比較速率, 倒不如比較兩者在電腦領域中的分層!
>C應該比組語更高層, 也更接近使用者!
我想釐清一些迷思,程式語言的對象都是人, 而不是CPU.

>
>而至於效率的話, 應該也跟分層有關吧!
>C在編譯的過程中會經過組語階段, 也就是說C語法會先被轉譯成組語語法,
>再被轉成機器語言! 而組語就直接轉機器語言了!多了一層轉換, 當然速度有差!
>這也就是為何Java效率一直令人詬病的原因了! 因為Java還多了一層JVM!
>個人愚見, 如有錯誤請指正!
我建議你要先了解直譯器(Interpreter)跟編譯器(Compiler)的差別.再來提分層的想法.
作者 : sunny_gong(simula)討論區板主 C++頂尖高手貼文超過500則人氣指數超過30000點
[ 貼文 892 | 人氣 45047 | 評價 7220 | 評價/貼文 8.09 | 送出評價 108 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/1 下午 02:07:25
補充:Java 編譯出來的是 ByteCode 的中間碼,JVM 用直譯的方式來執行 ByteCode。
http://en.wikipedia.org/wiki/Bytecode
作者 : dank8435(Daniel)討論區板主 資訊類作業求救優秀好手貼文超過200則
[ 貼文 415 | 人氣 7059 | 評價 2010 | 評價/貼文 4.84 | 送出評價 11 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/2 上午 11:42:44
>我建議你要先了解直譯器(Interpreter)跟編譯器(Compiler)的差別.再來提分層的想法.

嗯嗯! 我會多看看相關的東西! 謝謝!
作者 : seanchang(H) Assembly卓越專家貼文超過1000則
[ 貼文 1200 | 人氣 773 | 評價 3240 | 評價/貼文 2.7 | 送出評價 43 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/3 下午 06:20:08
>而至於效率的話, 應該也跟分層有關吧!
C ccompiler的好壞可以決定相同的程式, 編譯後執行的效率.
所以可以針對不同的C compiler來作評比.
assembly 寫的程式效率完全決定在工程師的數值上面, 一個有效率的 assembly程式
除了使用正確的演算法外, 還必須依靠工程師對CPU指令使用的熟悉程度.

根據我個人的心得.
6502這種 microchip的晶片, 一般而言assembly 可以比C產生有效率的code.
x86 CISC之類的, 兩者效率其實差不多.
至於MIPS , ARM 這些RISC, 用個好compiler寫的程式會比用assembly寫程式有效率.



作者 : ypcok(ypcok)
[ 貼文 3 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/8/18 上午 10:28:01

>一個是寫給人看的,另一個是寫給電腦看的^^


同意. 一语道的. 像用组合语言写的.
作者 : greatkuo(Great)
[ 貼文 25 | 人氣 0 | 評價 40 | 評價/貼文 1.6 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/8/18 下午 05:16:03
什麼是高階語言什麼是低階語言
通常我們講的高階語言就是能夠表示數學上的四則運算
而低階語言是無法計算四則運算的
簡單來區分就是這樣....
作者 : xsion(小星)
[ 貼文 30 | 人氣 1716 | 評價 60 | 評價/貼文 2 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/8/18 下午 08:36:24

>什麼是高階語言什麼是低階語言
>通常我們講的高階語言就是能夠表示數學上的四則運算
>而低階語言是無法計算四則運算的
>簡單來區分就是這樣....

這是因為人類思維是採四則運算,
而目前CPU設計都是一個口令一個動作所導致的果。

拿這來區分高低階語言似乎有點倒果為因耶。
作者 : greatkuo(Great)
[ 貼文 25 | 人氣 0 | 評價 40 | 評價/貼文 1.6 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/8/22 下午 06:07:07
>
>這是因為人類思維是採四則運算,
>而目前CPU設計都是一個口令一個動作所導致的果。
>
>拿這來區分高低階語言似乎有點倒果為因耶。

是誰說人類的思維是四則運算
小學老師沒教我四則運算我可能計算方式會跟電腦是一樣的
而且你可以講CPU是一個口令一個動作
但組合語言並不是喔...例如乘法這指令就不是
要做乘法前必須做很多事情...

我為什麼講高階語言與低階語言可以利用四則運算就可以來區分
其實我應該用更精準的說法來說
也就是高階語言可用一個instruction就能處理的事情
低階語言卻沒有辦法
而四則運算只是其中一項而已
我舉個簡單例子
B = A;
在高階語言這就只是一個instruction而已
就是把A的值放到B裡面
但低階語言卻要2個instruction才能完成

作者 : spainpollo(班班西) 貼文超過200則
[ 貼文 351 | 人氣 215 | 評價 1030 | 評價/貼文 2.93 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/8/25 下午 03:51:31

>大家好,
> 今天突然被同學問到c語言和組合語言有什麼不同,結果我回答一個有結構,一個沒有。同學的表情看看來怪怪的,所以想請問一下大家的看法,謝謝。

要講不同哦

一.語法不同 保留字不同

二.可攜性不同 mechine dependence vs mechine independence

三.link library suport 不同

-------------------------
題外話:
基本上都是程式語言 那個適合就用那個
作者 : kib72377(史努比) Visual Basic卓越專家Assembly優秀好手Access頂尖高手貼文超過1000則
[ 貼文 1455 | 人氣 1891 | 評價 8600 | 評價/貼文 5.91 | 送出評價 31 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/8/25 下午 04:24:54
組合語言:源由 機器語言指令助憶碼,
機器語言的"助憶碼",
讓程式師比較好寫機器語言用的,
後來又進步到 lable,
再來是macro巨集 ,結構等等的

c語言:再掰嘛......
作者 : sadiku(凡人)
[ 貼文 38 | 人氣 6 | 評價 90 | 評價/貼文 2.37 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/8/27 上午 01:22:20
兩者編譯前都是一樣的,都是給人看的,經過編譯後也都是一樣的,都是給機器看的,所以沒啥不同囉~~
 板主 : 徵求中
 > 組合語言 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 組合語言 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
組合語言
1 H 2220 
2 liaoo 990 
3 青衫 970 
4 牧童哥 940 
5 史努比 920 
6 qq 480 
7 GHOST-JACKY 330 
8 ]CALL-151 310 
9 harrison 300 
10 掌握文武半邊天 280 
組合語言
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.125