作者micklin (mick doohan)
看板CSSE
標題Re: [問題] Computer Architecture 的幾個名詞解釋
時間Mon Mar 21 02:28:47 2011
※ 引述《sean72 (.)》之銘言:
: 小弟最近有一次面試
: 裡面問了幾個名詞
: 由於我不是資訊工程背景出身 關於Computer Architecture的內容都是自修的
: 底子沒有很紮實
: 不過有幾個問題我不知道該如何找答案
: 另外由於這個面試的職位是韌體工程師 用C寫16位元系統的處理器
: 希望板上的高手能從這方面下手 指點迷津
: 下面有A. B. 兩大題
恕刪
: =====
: B.
: What are the max values that can be represented in the following data
: types on a 16-bits CPU?
: i. BYTE
: ii. WORD
: iii. int
: iv. unsigned int
: v. long
: vi. unsigned long
題目問的是 max value
以一個16位元的CPU來看, BYTE依然是8個bits, 最大是2^8-1
一個word就是16bits, 最大值是2^16-1
int定義成16bits的話, 扣掉一個sign bit, 最大是2^15-1
unsigned int就是2^16-1
long跟unsigned long大概要用2個int來組成,
就會變成 2^31-1 與 2^32-1
: 16位元處理器代表他register一次存取大小為 16 bits
: 所以
: i Byte: 2 <--對嗎? 對吧?
: ii Word: 不知道
: iii int : (2^15)-1 (一個bit拿去表示正負)
: iv unsigned int: (2^16)-1
: v long: 不知道
: vi unsigned long: 不知道
: 在32位元系統中 我查到
: word大小取決於系統 例如32位元系統word大小為4byte
: short是半個word, 2 byte
: int一個word, 4 byte
: long可能是一個word或是兩個word (為什麼網路上說 "可能是""或是"?)
: 以下為我自己的疑惑:
: 請問這該怎麼推算到其他例如 8位元 或是64位元系統呢?
: 如果我的CPU是32位元 我卻安裝了一個16位元的DOS又會怎樣?
: 這跟compiler 抓取資料的長度有關嗎?
: 所以16bit CPU一般的compiler都設定成2 byte為一個單位來存取資料嗎?
: 非常非常感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.124.164.176