问题标签 [intel-8080]
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.
emulation - 操作码中的addr是什么意思 0x3a LDA addr intel 8080
LDA 是一个简单的操作码,它加载到 intel 8080 处理器中指向的数据的累加器(寄存器 a)。在这种情况下(0x3a LDA addr),它表示 op 将 addr 加载到累加器。但我无法识别它指定为 addr 的内容。
A <- (adr) 是 0x3a 执行的操作,它使用 3 个字节的内存。我可以将数据存储在 op 的最后 2 个字节中,因为高加和低加在堆栈中,但累加器只有 1 个字节,所以我不能。谢谢。
assembly - 单个 8080 指令中的时钟周期
从书中代码,它说:
8080 指令需要 4 到 18 个时钟周期”。
为什么执行一条指令的时钟周期数之间会有这样的波动。什么是需要很长时间才能执行的指令的示例?即,汇编指令会需要那么多周期吗?
intel-8080 - 8080中按位运算的进位和辅助进位如何计算
我目前正在编写一个 8080 仿真器,并且对为什么在操作码列表中将进位标志标记为“已修改”感到困惑,例如
https://pastraiser.com/cpu/i8080/i8080_opcodes.html 或 http://www.emulator101.com/8080-by-opcode.html
它只是设置为 0 还是有一种实际的方法来计算按位运算的进位?我有点困惑,因为 Pastraiser 说它已修改,而不仅仅是设置为 0。
function - 汇编程序中的 CALL MULTIPLY 函数
所以我在几个小时内有一个小练习,我几乎完成了准备工作。有一项任务我真的不明白。
任务:
为了进一步处理,测量值 m (0 ≤ m ≤ 255) 存储在内存中,从地址 0x81 开始。要处理的测量值的数量 n 位于地址 0x80 (1 ≤ n ≤ 15)。编写一个 EVALUATION 程序,其中将值 310 与每个测量值相乘,然后将值 510 相加。计算出的测量值应写回相同的内存位置。为实现乘法运算,前一个任务中的 MULTIPLY 程序将作为子程序调用。要从子程序返回到主程序,必须用 RET 指令终止子程序。确保在调用子程序时不会丢失主程序中的相关数据。堆栈可用于保存数据。主程序应从地址 0x60 开始,子程序应从地址 0x40 开始。
我的程序 MULTIPLY 我必须打电话。
我真的只需要知道如何实现一个新函数,调用这个函数并返回而不会丢失我的值。我已经在模拟器中检查了我的功能,它可以正常工作,所以不用担心。任何帮助是极大的赞赏!
parsing - 汇编程序应该如何区分符号和全字母十六进制值?
我正在学习一些 8080 程序集,它使用较旧的后缀H
来表示十六进制常量(与现代前缀0x
或相比$
)。我还在用玩具汇编器闲逛,并考虑如何标记源代码。
可以编写一个有效的十六进制常量 (say) BEEFH
,它只包含字母字符。也可以定义一个名为BEEFH
. 所以当我写:
根据旧的英特尔文档,这在语法上应该是有效的:BEEFH
符合标签的命名规则,当然也是一个有效的 16 位地址。这里的操作数是地址常量还是标识符的歧义JMP
似乎是个问题。
我无法访问原始的 8080 汇编器来查看它对这个示例的作用。这是一个在线 8080 汇编器,它似乎JMP
在所有情况下都将操作数解析为标签引用,但显然一个合适的汇编器应该能够使用 JMP 指令定位绝对地址。
谁能阐明围绕此的约定实际上是/应该是什么?我错过了一些明显的东西吗?谢谢。
assembly - 这组指令有什么作用?
这段代码是什么意思?
有我的评论。我可能错了。但我认为是的。
我从来没有遇到过像OFFF、OO这样的结构。这是什么意思?
这段代码有什么作用?主要目的可能是什么?
它可能是哪种型号的处理器?你怎么想?
assembly - 汇编器 - 8080,无法比较数字
我不知道我做错了什么。我在这段代码中的目标是增加b并打印它。代码的第一部分是计算插入字符串中的数字,如果计数器超过 9,第二部分应该增加 b。
据我了解, cpi应该比较它,如果它低于“0”或高于“9”并做出决定。但它现在正在工作,我不知道我在比较什么..