问题标签 [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.
assembly - Intel 8080:递增地址
我正在做作业,在最后一个例子中我真的不明白该怎么做:(对不起我的英语不好,希望你能理解)
示例:定义“var”变量。在内存中,以 16 位数的形式存储在 H,L 中的地址中,用值 3 填充 'var' 中的字节数。因此,在 H,L 的地址中,用寄存器 M 插入值 3。然后寄存器 H、L 中的地址加 1(您需要使用 ADD 或 ADC,因为 INR 不设置 CF)。重复这个'var'次。
我的程序现在看起来像这样,但我该如何继续?谢谢
assembly - 编译器会为 if (a !=b) 生成哪条 8080 条件跳转指令?
选项:
- jz
- 关注
- jc
- jnc
我有这个问题的答案,但我很难准确地理解它在问什么。这是什么意思,什么是复习这个话题的好方法?谢谢。
assembly - CPI 总是将 Cy 设置为真,也许是负数?
我需要数单词,哪里有比数字更多的大字母。
inr c
如果大字母在单词中并且dcr c
有数字,我会使用。在单词的末尾我尝试 c>0,如果它是真的,我会这样做inr d
。d
是大字母多于数字的单词数。问题是,c>0 总是正确的。(我认为,因为它计算所有单词)。
cpu-architecture - 标志寄存器中保留/未定义位的用途是什么?
在 Z80、8080、8085 和 8086 处理器的标志寄存器中,记录为“保留”或“未定义”的位 1、3、5 的用途是什么?
assembly - 8080 上的签名溢出检测
x-y
如果溢出,我想分支。
我想出了将xy存储到寄存器 A,将0存储到寄存器 B并比较这两个寄存器的想法。
与 8086 不同,8080 没有 OF 标志或jo
/jno
指令。
它适用于x=128 , y=127但不适用于值x=0, y=0。
intel - 带有 Z80 处理器的任何东西都可以运行 Gameboy 游戏吗?
由于 Gameboy 的处理器 LR35902 是 Z80 和 Intel 8080 的混合体,请记住,Z80 和 Intel 8080 的设计基本上是交叉兼容的,任何具有 Z80 处理器的东西都可以运行以下操作码吗?适用于LR35902?我想知道不是因为我希望用我的 TI84 在自习室玩口袋妖怪。
编辑:我知道我必须重新编程控件,可能还有游戏访问 RAM 的方式,但我宁愿这样做,也不愿移植整个游戏。
assembly - How do I efficiently do signed comparisons on the 8080?
I want to compare two 16-bit numbers and branch on the result: the equivalent of if (a<b) goto negative
. I'm using an Intel 8080.
The Z80 has a signed arithmetic overflow flag which can be used for this with some degree of effort. The standard code is:
But the 8080 isn't a strict subset of the Z80, and the code above won't work there --- on the 8080, arithmetic instructions set the P flag based on the parity of the result, with hilarious results.
So what's the idiomatic way to do signed comparisons on the 8080?
Actually calculating the overflow flag is possible but really painful as it requires doing bit operations on both the operands and the result, and I'm running out of registers. Also, it's not actually what I want here; I don't actually care about the overflow. I just want to do the comparison.
(I can't simply subtract and branch if the result is negative because that doesn't work in all cases. Consider INT_MIN < INT_MAX. That's 0x8000 - 0x7fff = 1, which is obviously positive.)
assembly - 8位的普通减法运算
这是我的代码:
我只是尝试实现简单的除法,但是当您阅读评论(;
)时,我得到了不同且有趣的结果。
我的想法如下:
只要股息为正,subtractionLoop
就继续减法。如果达到0
,则转到零部分。否则,转到减号部分。
我的错误在哪里/在哪里?
跳跃似乎不对。
assembly - DCX 和进位标志
作为我正在学习的课程的一部分,我正在学习 8080 组装。我指的是英特尔 8080-8085 汇编语言编程手册(1977 年)。
在手册的第 3 章指令集中,我看到以下与 DCX 相关的描述:
DCX 将指定寄存器对的内容减一。DCX 不影响任何条件标志。
相关的例子说:
假设执行 DCX H 指令时,H 和 L 寄存器包含地址 9800H。DCX 将两个寄存器的内容视为单个 16 位值,因此从 H 寄存器中借位以产生值 97FFH。
我使用二进制补码加法自己尝试了数学运算,并且肯定产生了进位。
所以我的问题是:是否只在算术运算的情况下设置进位位?
TIA
光伏