史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2005-10-13, 05:48 PM   #1
HERO
註冊會員
 
HERO 的頭像
榮譽勳章
UID - 2836
在線等級: 級別:12 | 在線時長:194小時 | 升級還需:27小時級別:12 | 在線時長:194小時 | 升級還需:27小時
註冊日期: 2002-12-06
VIP期限: 2009-03
住址: 媽媽的肚肚
文章: 588
精華: 0
現金: 8 金幣
資產: 29811 金幣
預設 幾個程式的疑問

函數的「定義」和「宣告」有何不同
32位元處理器?什麼是64位元處理器?對程式設計有何影響
什麼是指令集,對程式設計有何影響

剛剛被考倒了~有大大可以解釋給我聽嗎?感激不盡!
HERO 目前離線  
送花文章: 34, 收花文章: 12 篇, 收花: 24 次
回覆時引用此帖
舊 2005-10-13, 08:02 PM   #2 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時
註冊日期: 2002-12-07
文章: 13382
精華: 0
現金: 26616 金幣
資產: 3024526 金幣
預設

函數的宣告
是一種公告
告訴 xx 有這麼一個功能
(及 如何溝通)

函數的定義
即 函數的成型
把函數內部的運作方式 編寫出來

函數 可以沒有 (顯著的)宣告,但一定要有 函數的定義

不過 上面這句話 不適用現代的C++


什麼是64位元處理器?
可以用高速公路來比喻 :
單位時間前提下 8線道比4線道 之道路 可以處理更多車流量
64位元 代表的意義就在於 資料處理量是 32位元 的兩倍 (實際不能這麼肯定,因為還與程式設計有很大關係)
(各)匯流排寬度提高
連帶著
暫存器、(各)處理單元、記憶體定址能力
都要一起調整(提高)
這才能叫真正的 xx位元處理器

對程式設計有何影響
基本來說 除非是用 低階語言
否則 可說沒有影響 (因為新的CPU之使用是編譯器的事)
頂多需注意的是
低階控制 與 程式編譯器版本 等問題

什麼是(CPU)指令集
你給CPU什麼電子訊號
就是會根據電路設計
跑出什麼訊號給你
拿之前的函數來講的話就是 :
使用者知道的是 "宣告"
而內部的電路設計就是 "定義",程式設計者絕大部分是不需研究 '它' 的
利用
所知到的 函數 來組合出 功能
當然一般的 高階程式設計使用者 也根本不用知道 CPU提供什麼指令集

對程式設計有何影響
新的指令集 有著 "簡化(簡化觀點、簡化調度)" 或 "替代一連串的舊指令集(時而它就是特別為某某功能而設計的)" 或 "提供新的可使用資源"
就能達到所要的功能
所以 程式設計 上 使用 新的指令集
就能達到
縮短單位時間內 功能之達成
(運算)處理速度當然就快多了
mini 目前離線  
送花文章: 2027, 收花文章: 8021 篇, 收花: 26846 次
回覆時引用此帖
舊 2005-10-13, 09:19 PM   #3 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

引用:
作者: HERO
函數的「定義」和「宣告」有何不同
32位元處理器?什麼是64位元處理器?對程式設計有何影響
什麼是指令集,對程式設計有何影響

剛剛被考倒了~有大大可以解釋給我聽嗎?感激不盡!
函數宣告 宣告函數名稱 引數 回傳值
函數定義 定義函數要做什麼事情 也就是填滿函數左大括號至右大括號的部分

32位元是指CPU暫存器長度為32位元
不論32或64位元
使用者只能存取16位元

指令集就是CPU本身的指令
對於高階語言設計者來說
並沒有什麼影響
對於組合語言來說
必須要寫CPU看的懂的指令才行
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
舊 2005-10-13, 11:04 PM   #4 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時
註冊日期: 2002-12-07
文章: 13382
精華: 0
現金: 26616 金幣
資產: 3024526 金幣
預設

一個暫存器被分成 幾個部分
高、低、延伸、??
所以 使用者 不是只能存取16位元 才對 !~
mini 目前離線  
送花文章: 2027, 收花文章: 8021 篇, 收花: 26846 次
回覆時引用此帖
舊 2005-10-13, 11:10 PM   #5 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

引用:
作者: mini
一個暫存器被分成 幾個部分
高、低、延伸、??
所以 使用者 不是只能存取16位元 才對 !~
應該是高八位元 低八位元
延伸部分應該使用者不能存取吧
應該是這樣吧
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
舊 2005-10-14, 09:53 AM   #6 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時
註冊日期: 2002-12-07
文章: 13382
精華: 0
現金: 26616 金幣
資產: 3024526 金幣
預設

當初學組合語言
因為只學基本 所以沒有用過 延伸部分
但並不表示 使用者不能存取
比如 80386 的 EAX 暫存器結構是
31~16 15~8 7~0
[沒名字] [AH] [AL]
雖然 延伸部分 沒名字所以不能單獨使用
但不表示不能用整個 EAX
比如
mov eax, dword ptr [edx]

至於
x86-64 的暫存器設計如何可見
http://publish.it168.com/2003/0521/images/25685.gif
AX -> EAX -> RAX
EAX 之使用
可以先用邏輯運算方式遮蔽 AX 如此就可達到分割使用 16bit以上與以下之內容
當然也可 一次使用

http://it.hnblue.cn/html/2003-9-9/200399103254.htm
mini 目前離線  
送花文章: 2027, 收花文章: 8021 篇, 收花: 26846 次
回覆時引用此帖
舊 2005-10-14, 10:17 AM   #7 (permalink)
註冊會員
 
snoopy 的頭像
榮譽勳章
UID - 33737
在線等級: 級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時級別:49 | 在線時長:2676小時 | 升級還需:24小時
註冊日期: 2003-02-02
VIP期限: 2011-06
住址: 台南共和國
文章: 1831
精華: 0
現金: 12744 金幣
資產: 12834 金幣
預設

喔喔 是這樣啊
因為施威銘的組合語言是寫說
我們只能存取0至15bit
不能使用16-31bit的部分
snoopy 目前離線  
送花文章: 623, 收花文章: 392 篇, 收花: 1288 次
回覆時引用此帖
舊 2005-10-14, 11:02 AM   #8 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時級別:97 | 在線時長:9935小時 | 升級還需:61小時
註冊日期: 2002-12-07
文章: 13382
精華: 0
現金: 26616 金幣
資產: 3024526 金幣
預設

引用:
作者: snoopy
喔喔 是這樣啊
因為施威銘的組合語言是寫說
我們只能存取0至15bit
不能使用16-31bit的部分
其實這麼說也不能說不對
可以改正為
不能單獨一指(令)運算 16-31bit的部分

如要把
EAX 用來記載 兩個 16bit 資料
可以用邏輯運算的方式
要把 E5 與 FE 放在 EAX裡
可以先把 E500 + EF 再 mov 到 EAX
要提出16-31bit來 就直接
做 EAX and FF00 並右位移FF

此情形發生於 暫存器吃緊
mini 目前離線  
送花文章: 2027, 收花文章: 8021 篇, 收花: 26846 次
回覆時引用此帖
舊 2005-10-19, 02:06 PM   #9 (permalink)
榮譽會員
榮譽勳章
UID - 2
在線等級: 級別:0 | 在線時長:4小時 | 升級還需:1小時
註冊日期: 2002-12-05
文章: 230
現金: 6185 金幣
資產: 6185 金幣
預設

兩位的文章收下.

ps. mini 兄,早前求教的問題已測試成功,謝謝.
Eric Chen 目前離線  
送花文章: 0, 收花文章: 7 篇, 收花: 19 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 06:00 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1