作者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