13得票2回答
当经典MacOS进入程序时,68000堆栈上有什么?

我正在尝试理解一个经典的老款Mac应用程序的入口点。我已经反汇编了第一个CODE资源(不是CODE#0,这是跳转表)。该代码涉及堆栈上的一些变量:0004(A7)处的一个字,从000C(A7)开始的一组长字的数组,其长度为0004(A7)处的值,并且超出该数组的一个最终长字似乎是指向字符字符串...

11得票1回答
帮助处理68k汇编 - 跳转表?

我正在使用IDA对一个大型Amiga程序进行反向工程,并取得了很多进展。然而,有些东西我无法完全理解。具体来说,我发现了几个使用我认为是“跳转表”的子程序,但我无法弄清楚它们是如何工作的。请问有人有什么建议吗? moveq #0,d0 move.b d7,d...

11得票6回答
编写适用于Motorola 68K处理器的操作系统。我可以模拟它吗?并且我可以进行操作系统开发测试吗?

下一个学期,我需要作为课程实验材料之一编写适用于Motorola 68K处理器的基本操作系统。 是否有适用于该处理器的Linux模拟器基本硬件设置?这样我的伙伴和我就可以在电脑上快速调试,而不必物理重新启动板子等等。 是否可能将测试驱动开发技术应用于操作系统开发?代码将主要使用汇编语言和C...

11得票9回答
在Linux下为Motorola 68000编程的环境

大家好, 我正在本学期学习微型计算机的结构和应用课程,并使用摩托罗拉68000系列CPU/板进行编程。课程大纲建议在家中运行类似于Easy68K或Teesside Motorola 68000 Assembler/Emulator这样的软件来测试我们的程序。 我告诉我的教授我在运行x64 ...

9得票5回答
LEA和MOVE.L之间的区别是什么?

这两者之间有什么区别吗? LEA $1000,A0 并且 MOVE #$1000,A0 将地址放入地址注册表中?

8得票2回答
68040错误地执行了if else分支

有没有熟练的68k汇编程序员?我正在使用商业版Green Hills编译器为Motorola 68040编译代码,但发现代码表现非常奇怪。有时候,代码会进行if/else比较,却执行了错误的分支。例如: float a = 1, b = 2; if (a < b) do c;...

7得票1回答
使用 Motorola 68000 汇编语法中的程序计数器间接索引语法

我正在为Sega Mega Drive ROMs制作自己的反汇编器,最初的工作基于MOTOROLA M68000 FAMILY Programmer’s Reference Manual。在反汇编了相当一部分ROM之后,我尝试使用VASM重新组装这个反汇编输出,因为它可以接受Motorola汇...

7得票2回答
不同的68k模拟器有不同的TRAP任务吗?

最近我一直在重新学习Motorola 68000编程。坦白地说,在上课时,我只是为了及格而做(而且还有一个糟糕的教授)......但现在我对这个东西真正感兴趣了。无论如何,翻阅我的旧教材《James L. Antonakos的68000微处理器》,他使用以下代码: ORG ...

7得票7回答
你还保留着哪些古老的编码技术?

在我病假几天且无聊至极的时候,我决定尝试挖掘一些旧代码。我找到了我写过的一些古老的Atari ST二进制版本,但是我找不到任何源代码。我确实设法从传说中的x2ftp网站的存档中找到了我很久以前用汇编语言编写的旧ModeX库:http://ftp.lanet.lv/ftp/mirror/x2ft...

7得票4回答
循环移位扩展是用于什么的?

我记得在一个汇编课上,我们学习了m68k处理器,它有三种不同的移位方式:线性移位、循环移位和带扩展的循环移位。 最后一种带扩展的循环移位,基本上是将所有位向左或向右旋转,但是在将最外层的位移动到开头之前,它会将其放入一个扩展位中(如果您再次移位1)。 我画了一个小图: 基本上,在循环...