标签: intel-8080

中断如何在Intel 8080上运行?

中断如何在Intel 8080上运行?我搜索了谷歌和英特尔的官方文档(197X),我发现只有一点关于此的描述.我需要一个关于它的详细解释,来模拟这个CPU.

interrupt intel-8080

8
推荐指数
2
解决办法
4198
查看次数

如何在 8080 上高效地进行签名比较?

我想比较两个 16 位数字并根据结果进行分支:相当于if (a<b) goto negative. 我使用的是英特尔 8080。

Z80 有一个有符号算术溢出标志,可以通过一定程度的努力来实现此目的。标准代码是:

ld de, _left
ld hl, _right
ld a, e
sub a, l
ld a, d
sbc a, h
jp po, $+5  ; branch on overflow flag not set
xor a, 0x80 ; flip sign bit
jm negative ; actually do the test
Run Code Online (Sandbox Code Playgroud)

但8080并不是Z80的严格子集,上面的代码在那里不起作用——在8080上,算术指令根据结果的奇偶校验设置P标志,结果很搞笑。

那么在 8080 上进行带符号比较的惯用方法是什么?

实际上计算溢出标志是可能的,但确实很痛苦,因为它需要对操作数和结果进行位操作,而且我的寄存器已经用完了。而且,这实际上并不是我想要的;我实际上并不关心溢出。我只是想做个比较。

(如果结果为负,我不能简单地进行减法和分支,因为这并不适用于所有情况。考虑 INT_MIN < INT_MAX。即 0x8000 - 0x7fff = 1,这显然是正数。)

comparison assembly signed intel-8080

5
推荐指数
1
解决办法
1179
查看次数

标志寄存器中保留/未定义位的用途是什么?

在Z80,8080,8085和8086处理器的标志寄存器中,第1,3,5位的目的是什么,它们被记录为"保留"或"未定义"?

z80 cpu-architecture 8085 intel-8080 x86-16

4
推荐指数
1
解决办法
745
查看次数

Z80处理器可以运行Gameboy游戏吗?

由于Gameboy的处理器LR35902是Z80和Intel 8080的混合体,因此请记住,Z80和Intel 8080的设计基本上都是交叉兼容的,拥有Z80处理器的任何产品都可以运行是指LR35902?我想知道不是因为我希望使用TI84在自习室玩口袋妖怪。

编辑:我知道我将不得不重新编程控件,可能还需要重新编程游戏访问RAM的方式,但是我宁愿这样做,也不愿移植整个游戏。

z80 intel retro-computing gameboy intel-8080

2
推荐指数
1
解决办法
729
查看次数

英特尔 8080 仿真器测试仪

我为 Intel 8080 编写了一个模拟器,我想检查我实现的指令是否正确。是否有测试套件或方法来测试每条指令是否正确?

我的模拟器是用 C 编写的。

assembly emulation instructions test-suite intel-8080

2
推荐指数
1
解决办法
2758
查看次数

Altair 8800数据和说明

最近我一直在玩Altair 8800仿真器以了解计算的基础知识,我想知道处理器如何"知道"字节是指令还是数据?

binary assembly intel-8080

0
推荐指数
1
解决办法
271
查看次数

为了模拟RRC指令,做这种按位操作是做什么的

我正在开展一个个人项目,以提高我对CPU工作方式的了解.所以我正在做一个Intel 8080仿真器,它是一个8位微处理器.

在RRC指令的实现中,其示例如下:

case 0x0f: {    
  uint8_t x = state->a;    
  state->a = ((x & 1) << 7) | (x >> 1);    
  state->cc.cy = (1 == (x&1));    
}
Run Code Online (Sandbox Code Playgroud)

我无法理解这条线是如何工作的.

state->a = ((x & 1) << 7) | (x >> 1);
Run Code Online (Sandbox Code Playgroud)

我知道它应该将所有位向右移动1个位置,但我无法弄清楚如何.

如果有人能够为我提供一步一步的实际操作示例,我将不胜感激.


  • state->a是一个uint8_t模拟名为A的intel 8080寄存器的模拟器.

  • 0x0f 是RRC的HEX值.

  • 这个例子已提供页.

c bit-manipulation emulation intel-8080

0
推荐指数
1
解决办法
123
查看次数