Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为iPhone开发8085模拟器的指南_Ios_Iphone_Microprocessors_8085 - Fatal编程技术网

Ios 为iPhone开发8085模拟器的指南

Ios 为iPhone开发8085模拟器的指南,ios,iphone,microprocessors,8085,Ios,Iphone,Microprocessors,8085,我是一名本科生,也是一名iOS应用程序开发人员。 在我的大学里,我们学习了8085微处理器,我认为为它开发一个iOS模拟器会很酷,也很有用 我想知道如何从头开始应用程序,以及我需要知道的一切。我学得很快,可以同时学习和发展。 任何伟大的建议都将受到衷心的感谢。谢谢。您可以构建一个,在iOS程序中编程,如果您想用高级语言编写代码,您还需要“编译”处理器的程序集,然后对其进行解释 我应该强烈警告您,IMENSE将有大量的工作要做,我认为这不是一个实际的项目。您可以构建一个,在您的iOS程序中编程,如

我是一名本科生,也是一名iOS应用程序开发人员。 在我的大学里,我们学习了8085微处理器,我认为为它开发一个iOS模拟器会很酷,也很有用

我想知道如何从头开始应用程序,以及我需要知道的一切。我学得很快,可以同时学习和发展。 任何伟大的建议都将受到衷心的感谢。谢谢。

您可以构建一个,在iOS程序中编程,如果您想用高级语言编写代码,您还需要“编译”处理器的程序集,然后对其进行解释

我应该强烈警告您,IMENSE将有大量的工作要做,我认为这不是一个实际的项目。

您可以构建一个,在您的iOS程序中编程,如果您想用高级语言编写代码,您还有额外的工作要“编译”到处理器的汇编,然后,解释它


我应该强烈警告您,iSense将有大量的工作要做,我认为这不是一个实际的项目。

请立即在App store上查看适用于iPhone和iPad的iOS 8.0及以上版本的8085模拟器。使用此应用程序的感觉与使用8085培训师套件的感觉几乎相同。您还可以检查汇编程序和反汇编程序的功能。作为一个附加功能,爱好者选项卡可以练习8085微处理器上可用的逻辑操作。有关如何使用说明,请访问此网站。

立即在App store上查看适用于iPhone和iPad的iOS 8.0及以上版本的8085模拟器。使用此应用程序的感觉与使用8085培训师套件的感觉几乎相同。您还可以检查汇编程序和反汇编程序的功能。作为一个附加功能,爱好者选项卡可以练习8085微处理器上可用的逻辑操作。有关如何使用说明,请访问此部分。

这取决于您希望模拟8085的抽象级别。学究般地说,真正的芯片是一个40针的IC,因此这是40条信号线,根据它们的历史状态通过一组定义的转换进行排列

更有用的是,您可能希望在数字总线级别进行模拟,这通常意味着只知道芯片在每个总线周期(从这里读取、写入到那里等)中试图做什么,或者简单地解释8085指令流,以便像实际芯片中的执行单元那样对每个指令流做出反应

如果是后者,那么整个代码体就不会有问题了——程序的字节数组,抓取程序计数器说要获取的下一个字节,使用
switch
语句决定如何处理它,执行操作。我在CP/M仿真器中嵌入了一个Z80(与8085密切相关)仿真器(因此,只需正确地获取指令流就足够了),这是几百行代码,非常注重尽可能不重复,速度太快了

即使是前者,也不应该那么糟糕。在过去,我编写了一个Z80仿真器,它的输入和输出只有一个表示当前总线状态的数字版本的64位整数。它有一个类似于以前的广泛结构,但必然涉及到排队等待将来的转换,并做出额外的中间指令决策。如果您现在只关心正确性和简单性,那么您可以只保留GCD块的
NSArray
,表示CPU在每个时钟转换或每个周期中应该做什么

也许最明智的折衷办法是让CPU的输出流以机器周期为单位。如果您愿意,它们将精确地分解为总线状态,但也允许更高级别的解释


编辑: 在Objective-C形式中,Z80仿真器是指令精确形式的仿真器,因此使它不那么紧凑,但希望海报更容易跟随

它追溯并采用了一种更简单的方法(事后看来:首先编写反汇编程序可能是一个很好的步骤)。然而,该项目确实包含完整的信息。然而,我最终决定我不喜欢这种设计——进行C函数调用,特别是通过函数指针,每半个周期的成本过高,将如此低的通信级别直接焊接到模拟执行单元可能是过分的;任何精确描述同一过程但以更隐含的形式描述的内容都是可以接受的

取而代之的是6502模拟器,但这是我(C++)试图消化这些经验教训的尝试;它是一个机器周期一个机器周期(虽然6502上的机器周期恰好是一个时钟周期,正如它发生的那样-除非您声明就绪行,否则它将加载或存储每个周期,无论是否需要),并根据内部微操作列表安排其工作。它最终都会出现在报头中,因为我决定将模拟执行单元与任意总线集成的最佳方法是将其作为模板提供。如果我想要像之前链接的Z80代码那样的四分之一周期总线报告,那么我只需要使用模板创建一个将每个机器周期序列化为适当的总线状态的人


(…虽然如果你只是在谈论仿真,那么即使在任何循环精度下都可以中断,也不一定意味着我现在喜欢的串行化为更小的步骤-我大约在15年前写过,而只是跳到一个单独的线程上,并通过信号量在任何允许的中断点阻塞,这是放在concl上的每个周期的集成)

这取决于您想要模拟8085的抽象级别。学究般地说,真正的芯片是一个40针IC,因此40条信号线根据其历史状态通过一组定义的转换进行排列

更有用的是,您可能希望在数字总线级别进行模拟,这通常意味着只需要kno