精華區beta CSSE 關於我們 聯絡資訊
小弟最近有一次面試 裡面問了幾個名詞 由於我不是資訊工程背景出身 關於Computer Architecture的內容都是自修的 底子沒有很紮實 不過有幾個問題我不知道該如何找答案 另外由於這個面試的職位是韌體工程師 用C寫16位元系統的處理器 希望板上的高手能從這方面下手 指點迷津 下面有A. B. 兩大題 ===== A. 1. MEMORY SPACE 2. I/O SPACE 3. MEMORY HEAP 4. MEMORY STACK 關於1. 我事後上網查到的是 Memory Space = bytes的另外一個說法? 我不是很懂 請問能提供其他查詢關鍵字或是文章或是解釋嗎? 關於2. 處理器中某段記憶體空間 保留下來 專門給特殊的 輸入輸出裝置使用 請問這樣解釋對嗎 關於3. 4. 我腦中的知識 如下 傳統上 會將記憶體分成不同區段 某些用做Heap 某些用做Stack 還有 BSS, Data, Text 宣告local variable的時候會存放在stack 當函數結束 記憶體會自動釋放 使用malloc()的時候會回傳一個heap的空間 且必須搭配free()來釋放空間 可是面試官說我沒有回答到 Heap / Stack的精隨 ===== 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 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: 74.74.155.82 sean72:轉錄至看板 Tech_Job 03/20 10:17 ※ 編輯: sean72 來自: 74.74.155.82 (03/20 10:26)
TroyLee:i Byte: 2 ... 這... 03/20 11:00
抱歉 請問您的推文是什麼意思 如果您能給我一點幫助或是回答 實在是感激不盡 ※ 編輯: sean72 來自: 74.74.155.82 (03/20 11:12)
R119:2 不是指記憶體喔 03/20 12:27
howshou:蠻多書上都有吧, 建議你去看書有個整體的概念 03/25 16:22
howshou:不要只有片面的考試題目概念 03/25 16:23