Z80“Game Boy”CPU是8位还是16位?

9
我正在阅读有关创建Game Boy模拟器的教程,我了解到Game Boy使用8位CPU,但我不明白为什么Gameboy使用两种类型的数据:字节(8位)和字(16位)。
如果CPU的容量是8位,为什么可以使用16位?

13
Z80拥有8位数据总线、16位地址总线,ALU可以执行8位和一些16位操作。它通常被认为是一款8位CPU。 - Paul R
3
有趣的是,Z80显然有一个4位ALU... 这里介绍它的工作原理:http://www.osnews.com/story/27309/The_Z-80_has_a_4-bit_ALU_-_here_s_how_it_works - old_timer
@dwelch,确实如此,是的 - 一个确认的主要来源是Masatoshi Shima在这个计算机历史博物馆Zilog小组讨论的第9页底部开始的评论:http://archive.computerhistory.org/resources/access/text/Oral_History/102658073.05.01.acc.pdf - Tommy
1
Z80可以在16位寄存器(HL,BC,DE,SP,IX,IY)上执行一些数学运算,除了通常的8位(A)之外,还有一个16位累加器(HL),并且可以以16位块的方式访问内存(例如LD HL,(0x1234))。在我看来,它是一种混合的8/16位CPU(至少从程序员的角度来看),就像Motorola 68k是一种16/32位CPU一样。当然,16位指令集非常有限,但如果它是完整的,Z80将成为一个完整的16位CPU。这是我的一个非常有争议的观点,我承认。 - André Baptista
1个回答

9

CPU和寄存器是8位的,但是通过将两个寄存器分组,就可以存储和使用16位数据,就好像它们是一个16位寄存器一样。

这个网站有关于Gameboy硬件的一些很棒的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接