问题标签 [z80]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
378 浏览

microcontroller - Z80 标志 - 如何生成?

我正在设计一个Z80兼容项目。我负责设计标志寄存器。

我最初认为标志是直接从 ALU 生成的,具体取决于 ALU 操作的输入和类型。

但是在查看指令和标志结果之后,标志似乎并不总是与这个逻辑一致。

因此,我假设我还必须向 ALU 提供操作码,以便每次都生成正确的标志。但这似乎会使设计过于复杂。在进行这个巨大的设计步骤之前,我想在互联网上进行检查。

我对么?或者只是真的很困惑,它和我最初想的一样简单?

0 投票
1 回答
290 浏览

assembly - z80 汇编器出现“IM 1”指令问题

代码

错误

使用这个在线 IDE http://clrhome.org/asm/

它给了我: 未知指令或指令 IM(hello_z80 中的“IM 1”行)

所以?

我在这里做一些愚蠢的事情吗?

我不知道为什么会收到此错误。

谷歌没有运气。

0 投票
2 回答
282 浏览

assembly - Z80 如何在内存的不同位置加载不同的程序块?

我的问题

构建下面的代码我得到:“319920C30020C30A20FBED563E00C600CA0520F33E55D3073E00FBC9”

我的问题是我假设这将用零填充,这样每个代码块都位于程序存储器中请求的地址 0000H、0038H 和 2000H。

立即我可以看到手动进行填充的解决方法,但是 Z80 处理器如何加载上述程序,以位于正确的地址?

代码

0 投票
1 回答
1690 浏览

z80 - CP/M 3.1 (z80) 的最小汇编程序

我似乎正在与我的愚蠢作斗争。

该站点解释了各种版本的 CP/M 下的系统调用。

但是,当我尝试使用调用 2(C_WRITE,控制台输出)时,什么都没有发生。

我有以下代码。

我在这里背诵这句话。如果有错别字,请放心,它们不在原始文件中,因为文件确实编译了,而且我有一个 COM 文件要启动。

我认为这些线条的含义如下:

  1. 确保它被加载到地址 100h(0h 到 FFh 是零页)。
  2. 将 ASCII 'a' 加载到系统调用 2 的 E 寄存器中。
  3. 将整数 2 加载到系统调用 2 的 C 寄存器中。
  4. 进行系统调用(系统调用的 JMP 位于零页中的地址 5)。
  5. 结束程序(退出命令在零页的地址 0 处)。

程序启动和退出没有问题。如果我删除最后一个命令,它会挂起计算机(我猜这也是预期的,并显示 CALL 0 有效)。

但是,它不打印 ASCII 字符。(但它确实打印了一个额外的新行,但系统可能已经这样做了。)

如何让我的 CP/M 程序执行系统调用应该执行的操作?我究竟做错了什么?

更新:问题是我尝试过的所有汇编程序都需要某种格式的源文件。此文件与 Microsoft 的宏汇编器一起使用:

认为(我猜)asm.com(DR 的汇编程序)和 m80.com(微软的宏汇编程序)期待 Intel 8080 助记符,并且必须告知他们何时必须期待 z80 助记符,这显然是不同的。

无论如何我都会接受下面的答案,因为它也是正确的,因为它建议只需编写图像本身而不用担心 asm.com。

0 投票
2 回答
1398 浏览

c - 通过 UART 为简单的 Z80 系统设计引导加载程序,加载程序的位置

我已经开始为我的 z80 系统编写引导加载程序。到目前为止,程序可以通过串行接受十六进制并将其加载到内存中的某个位置。

我遇到的问题是引导加载程序位于内存的开头并使用中断,如何在不覆盖引导加载程序的情况下加载新程序?

(加载的程序也可能想要使用中断)

0 投票
1 回答
284 浏览

assembly - 如何输出标志寄存器 Z80 的当前值?

我想调试我的程序,但我需要知道标志寄存器的值,但我坚持找出这样做的指令。对于 z80 处理器。

[我唯一的猜测是使用 jp *, nn 然后根据跳转设置寄存器 A 中的位来测试条件,但肯定有一个更简单的方法,但我只是看不到它]

0 投票
1 回答
328 浏览

cpu - Z80 cpu中的AND运算如何溢出?

我正在参考 zilog z80 手册,我对 AND 指令的阅读有点困惑。它在“受影响的条件位”部分中说,如果操作溢出,则设置 P/V 标志。我可以理解 add 或 sub 指令如何溢出,但 AND 操作溢出对我来说没有意义。任何帮助表示赞赏!谢谢!

0 投票
1 回答
608 浏览

emulation - Z80 DAA 标志受影响

在以下链接中,

http://www.z80.info/z80syntx.htm#DAA

我对设置 H 标志的条件感到困惑。描述说要查看表格,但与 C 不同,在 DAA 之后有 C 列,对于 H,DAA 之前只有 H ...

那么,在 DAA 之后应该如何更新 H 呢?谢谢您的帮助!!欣赏它!:)

0 投票
3 回答
886 浏览

emulation - 为什么要模拟一定数量的周期?

我在不止一个地方看到过-以下模仿方式

即循环被传递到模拟函数

我很难理解您为什么要使用这种方法进行模拟,即为什么要模拟一定数量的周期?你能给出一些这种方法有用的场景吗?

衷心感谢任何帮助!

0 投票
1 回答
413 浏览

assembly - m80 宏汇编器 org 指令

我正在使用微软古老的 m80 宏汇编器,并且有一段时间没有遇到任何重大问题。

但是,我现在尝试将 ORG 指令与十六进制数字一起使用,但它失败了。

这有效:

但是,这不起作用:

m80 声称这是一个致命错误:

如何将 ORG 指令与包含 9 以上数字的数字一起使用?

我错过了什么?