Bit 8位和16位体系结构

Bit 8位和16位体系结构,bit,computer-architecture,Bit,Computer Architecture,我对bit架构有点困惑。我就是找不到一篇好的文章来回答我的问题,所以我想我应该这样问 问题1: 当谈到16位体系结构时,是否意味着每个ram地址都有16位长?所以如果我在C++中创建一个int(32位),变量将占用2个地址?< /p> 问题2: 在16位体系结构中,RAM中只有2^16(65536)个地址。为什么他们不能增加更多?这是因为16位不能代表更高的值,因此不能引用65535以上的地址吗 对。注意,尽管16位体系结构上的int通常只有16位宽。 还要注意,说一个变量“占用”两个地址是没有

我对bit架构有点困惑。我就是找不到一篇好的文章来回答我的问题,所以我想我应该这样问

问题1:

当谈到16位体系结构时,是否意味着每个ram地址都有16位长?所以如果我在C++中创建一个int(32位),变量将占用2个地址?< /p> 问题2:

在16位体系结构中,RAM中只有2^16(65536)个地址。为什么他们不能增加更多?这是因为16位不能代表更高的值,因此不能引用65535以上的地址吗

  • 对。注意,尽管16位体系结构上的
    int
    通常只有16位宽。
    还要注意,说一个变量“占用”两个地址是没有意义的。正确的说法是,在16位平台上,32位变量的宽度等于两个指针的宽度。
    无论采用何种架构,它仍将占用四个字节的空间

  • 对,;这正是16位地址的含义。
    请注意,这些地址中的每一个都指向一个字节的内存

  • 对。注意,尽管16位体系结构上的
    int
    通常只有16位宽。
    还要注意,说一个变量“占用”两个地址是没有意义的。正确的说法是,在16位平台上,32位变量的宽度等于两个指针的宽度。
    无论采用何种架构,它仍将占用四个字节的空间

  • 对,;这正是16位地址的含义。
    请注意,这些地址中的每一个都指向一个字节的内存

  • 当谈到16位体系结构时,是否意味着每个ram地址都有16位长?所以如果我在C++中创建一个int(32位),变量将占用2个地址?< /p> 你必须问谁在谈论16位架构,他们的意思是什么。它们可能意味着地址长度为16位。它们可能意味着通用CPU寄存器的长度为16位。它们可能意味着别的东西。但是我们不可能知道某个假想的人可能是什么意思。对于什么使某些东西成为“16位体系结构”,没有通用的定义

    例如,8032是具有8位通用寄存器的8位体系结构。但它有一个16位指针寄存器,可用于寻址65536字节的存储

    不管比特数是多少,几乎所有系统都使用字节地址。因此,一个32位变量将在任何位的机器上占据4个地址

    在16位体系结构中,RAM中只有2^16(65536)个地址。为什么他们不能增加更多?这是因为16位不能代表更高的值,因此不能引用65535以上的地址吗

    对于16位,只有65536种可能的方式可以设置这些位。因此,16位寄存器有65536个可能值

    当谈到16位体系结构时,是否意味着每个ram地址都有16位长?所以如果我在C++中创建一个int(32位),变量将占用2个地址?< /p> 你必须问谁在谈论16位架构,他们的意思是什么。它们可能意味着地址长度为16位。它们可能意味着通用CPU寄存器的长度为16位。它们可能意味着别的东西。但是我们不可能知道某个假想的人可能是什么意思。对于什么使某些东西成为“16位体系结构”,没有通用的定义

    例如,8032是具有8位通用寄存器的8位体系结构。但它有一个16位指针寄存器,可用于寻址65536字节的存储

    不管比特数是多少,几乎所有系统都使用字节地址。因此,一个32位变量将在任何位的机器上占据4个地址

    在16位体系结构中,RAM中只有2^16(65536)个地址。为什么他们不能增加更多?这是因为16位不能代表更高的值,因此不能引用65535以上的地址吗


    对于16位,只有65536种可能的方式可以设置这些位。因此,16位寄存器有65536个可能值。

    取决于您对8位和16位体系结构的定义

    6502被认为是8位CPU,因为它在8位值(寄存器大小)上运行,但有16位地址

    68000被认为是16位CPU,但有32位寄存器和地址

    对于x86,定义体系结构的通常是地址大小


    此外,“64位”CPU并不总是有完整的64位外部地址总线。它们可能在内部处理该大小的地址,因此虚拟地址空间可能很大,但这并不意味着它们可以有那么多的外部内存。

    取决于您对8位和16位体系结构的定义

    6502被认为是8位CPU,因为它在8位值(寄存器大小)上运行,但有16位地址

    68000被认为是16位CPU,但有32位寄存器和地址

    对于x86,定义体系结构的通常是地址大小


    此外,“64位”CPU并不总是有完整的64位外部地址总线。它们可能在内部处理这种大小的地址,因此虚拟地址空间可能很大,但这并不意味着它们可以有那么多的外部内存。

    维基百科的例子-所有内部寄存器以及内部和外部数据总线都是16位宽的,牢固地确立了8086的“16位微处理器”身份。20位外部地址总线提供1 MB的物理地址空间(2^20=1048576)。这个地址空间是通过内部“分段”来寻址的。数据总线与地址总线多路复用,以适合标准的40针双列直插式封装。16位I/O地址意味着64 KB的独立I/O空间(2^16=65536)。最大线性地址空间被限制为64 KB,这仅仅是因为内部寄存器只有16位宽