问题标签 [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 - 在 8080 的程序集中增加变量?
我现在正在为 Intel 8080 开发一个程序,但我真的不明白我们可以为变量保留的空间是如何工作的。即,假设我们这样做test DB 80
。例如,我以后可以以某种方式减少或增加变量test
,还是必须重新声明它?
c++ - 在内存中建模微型计算机寄存器?
作为一个小项目,我一直在创建一个较旧的微型计算机 CPU 仿真器,主要基于 8080 的架构。它的 8 位通用寄存器可以(根据维基百科)用作“三个 16 位寄存器对”以及正常的 8 位模式。这是我的问题。
我第一次尝试建模是单独命名的字节和短裤,在我重新阅读规格页面并发现 16 位寄存器实际上不是他们自己的东西之前,它工作得很好。哎呀。
我现在正在尝试的是一个字节数组,每个 8 位寄存器都有一个位置,两个位置为堆栈/指令指针保留。这对 8 位寄存器非常有效,而且管理起来也少了很多麻烦,但我实际上并不知道如何将两个字节转换为内存短。这甚至可能吗?如果没有,您对其他方法有什么建议吗?
assembly - 英特尔 8080:如何将 DE 移动到 B?
我使用LXI D
andLXI H
来加载立即数寄存器对DE
和HL
. 当我使用MOV A, M
它时,HL
价值可以移入,A
但如何移入?DE
B
assembly - Intel 8080:乘法溢出
我有一个 8080 处理器的模拟器。我需要编写一个程序,它可以通过移位和加法操作将两个两位数相乘(结果我可以期待四位数)
据我所知,intel-8080 中的所有数学运算都是在寄存器“A”中进行的,但它只能包含两位数。如果我多个 'ff' 和 'ff',我会溢出。如何绕过这个问题?谷歌说,对于我的任务,有进位标志,如果发生溢出,它将是'1'。
但我不明白,我该如何使用它。
感谢关注。
assembly - 按位读取寄存器对 - 程序集 i8080
我有一个十六进制值存储在寄存器对 B 中。我想按字符读取它。例如,在 B 中是 322(十六进制)我想在累加器 3 中,然后是 2,然后是 2(在 ASCII 中)。有可能吗?或者是否可以将此寄存器对存储到“字符串”中。通过字符串,我的意思是这一行->my_string: ds 30
我对组装真的很陌生。
assembly - 8080 装配说明
我正在为 8080 组装制作反汇编程序。如果我错了,请纠正我:我所要做的就是逐字节读取二进制文件,将每个字节翻译成一个命令。或者是否存在会增加命令长度的条件(在二进制中)。
assembly - Altair 8800 数据和说明
最近我一直在使用 Altair 8800 模拟器来了解计算的基础知识,我想知道处理器如何“知道”一个字节是指令还是数据?
unix - 英特尔 8080:我在这段代码中遗漏了什么吗?
这是从 rosettacode.com 获取的斐波那契序列的代码
如果取自 A 的值原本为 0,我们将 C 递减,C 会变成 -1 吗?如果是这样,在第 2 次 DCR 时该值会发生什么变化;JNZ 指令看到或做什么?
这是我第一次接触汇编语言,所以现在有点困惑。我在想,如果 C 已经是 -1 并且在我们到达 JNZ 指令时计数,那么这段代码不会陷入循环吗?还是 JNZ 正在寻找其他地方?
assembly - 汇编程序减去 16 位数字
当我在 i8080 处理器的汇编程序中减去两个 16 位数字时出现问题。
示例:0f70 - 00f0,第一个数字将在寄存器 B 和 C 中,第二个在 D 和 E 中。
二进制:
B = 0000 1111 C = 0111 0000
D = 0000 0000 E = 1111 0000
因此,当我减去 CE 时,它需要“借用”。好的,所以我会减少 B 但 C 呢?我知道在这种情况下 C 将是 1000 0000 但其他情况?
代码: