问题标签 [8085]
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.
8085 - 8085 中的程序计数器实际上是如何工作的?
我一直在阅读有关 8085 的程序计数器。这里的材料指出,程序计数器的功能是指向要从中获取下一个字节的内存地址。当一个字节(机器代码)被取出时,程序计数器加一以指向下一个内存位置。我的问题是,如果指令大小不同,它如何处理这种情况。假设当前指令是 3 个字节,那么 PC 应该指向当前地址+3。PC如何知道当前指令的大小?我是 8085 的新手,任何帮助将不胜感激。谢谢
division - 如何在 8085 处理器上将 BCD 除以 2?
在 8085 处理器上,将 BCD 转换为二进制表示时,将 BCD 除以 2 的有效算法会派上用场。您可能会想到递归减法或乘以 0.5,但是这些算法需要冗长的算术。
因此,我想与您分享以下更有效的代码(在 8085 汇编程序中)。该代码已在 GNUSim8085 和 ASM80 仿真器上进行了全面测试。如果此代码对您有帮助,请与我分享您的经验。
在运行代码之前,将 BCD 放入寄存器 A。如果要从更重要的字节(值 50)接收余数,则设置进位标志。执行后,寄存器 A 将包含结果。进位标志用于将余数(如果有)传递到下一个较低有效字节。
该算法在以非常特殊的方式操作 C 和 AC 标志之后使用 DAA 指令,因此考虑到传递到下一个半字节(即半八位字节)的任何余数都值 5 而不是 8。
call - 为什么 CALL 的操作码获取中有 6T 状态而不是 4?
我的问题是为什么 CALL 指令的操作码获取中有 6T 状态,而 8085 微处理器中的其他指令有 4 个状态。我搜索了很多,但没有找到任何满意的答案。
这里:http ://www.edaboard.com/thread201650.html它说它与在 CALL 的情况下使用的双寻址模式有关。但并没有真正解释为什么 6T 状态。
任何想法?
编辑
当我知道 CALL 需要 18 个 T 状态时,这个问题就出现了。
根据我的计算,它应该是:4(用于获取操作码)+ 3 + 3(两次内存读取以读取子程序地址)+ 3 + 3(用于两次内存写入堆栈)= 16
所以,在搜索互联网时,我知道在 CALL 的情况下操作码获取部分需要 6T 状态而不是 4。
更新
现在在阅读评论和重新思考之后,我知道 PUSH 通常需要 12 个 T 状态作为指令。在 CALL 的情况下,我们可以忽略 PUSH 的操作码获取部分,因为没有明确的 PUSH 指令,所以现在我们有 8 (12 - 4)。那么,我觉得是因为堆栈指针的减少吗?因为即使在 push 中它也应该是 6(3 + 3 用于内存写入),但这里是 8 (4 + 4)。
assembly - 解释 8085 中的“多结尾子程序”
子程序是一组指令,将在程序的不同位置重复使用。与其重复多次相同的指令,不如将它们组合成一个子程序,而不是在不同的位置调用……它可以存在于程序中的任何位置,甚至与主程序分开。
微处理器中常用的子程序有:
- 多个结束子程序
- 嵌套子程序
- 多结束子程序
我知道子程序是什么,并且我也可以根据它的名称对“多重结束子程序”做出一个理论......但是,我需要一个正确的解释。
如果有人可以解释所有这三种类型的子程序,那就太好了,否则只需解释“多结尾子程序”:)
microprocessors - 装配级编程以找到阶乘
我在我的代码中找不到问题。你能帮帮我吗?它给了我部分错误的答案。这两位LSB
是正确的,但不是MSBs
。
microprocessors - 8085 微处理器中两个 n 位数 (n<=255) 的和
这是我解决上述问题的代码。这样做会更有效的算法是什么?
assembly - 8085 微处理器 - 装配 DB 指令
我对以下汇编代码有疑问。
在 Loop1 的第一个循环中执行 ShowX 之后,这个 DATAX 正在使用 DB 指令来保留内存。
谁能帮我理解哪个是起始内存地址,它的 DB 命令将开始分配内存中的字节?
例如,由于 ORG 命令,下面的代码将开始在地址 C100H 中分配。因此 20h 将存储在 C100h 中,10h 将存储在 C100h + 1 中
预先感谢您的帮助。
ios - 为 iPhone 开发 8085 模拟器的指南
我是一名本科生和 iOS 应用程序开发人员。在我的大学里,我们正在学习关于 8085 微处理器的知识,我认为开发一个 iOS 模拟器对我来说会很酷而且很有用
我想知道如何从头开始启动应用程序以及我需要了解的所有信息。我是一个快速学习者,我可以同时学习和发展。真诚感谢任何伟大的建议。谢谢。
x86-16 - 8085微处理器中有没有使用XTHL指令?
我了解 XTHL 的作用,但有人可以举一个实际使用它的场景示例吗?此外,如果可能的话,请分享应用程序的代码。
clock - 超频8085微处理器会减少时钟周期数吗
我正在研究 8085 微处理器,发现它在 3 Mhz 上工作,例如操作码获取需要 4 个时钟周期,IO/M 读取或写入需要 3 个时钟周期。
所以现在,如果我以某种方式将 8085 超频到 10 Mhz,那么时钟周期数会减少吗?
或者周期数将保持不变,但 3 或 4 个完整周期的有效时间会减少?