问题标签 [68000]

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.

0 投票
1 回答
908 浏览

arrays - 在 EASy68K 汇编中对二维数组求和

100x100A整数数组,每个一个字节,位于A. 编写一个程序段来计算次对角线的和,即

SUM = ΣA[i,99-i],其中 i=0...99

这是我到目前为止所拥有的:

0 投票
3 回答
1220 浏览

html - 将十六进制 HTML 颜色转换为 Amiga colorregister hex(和返回)

HTML 十六进制颜色用 6 位数字(3 个字节,一个所谓的十六进制三元组)编写。Amiga 的颜色寄存器采用定义颜色的字(2 个字节,16 位)。

例子:

  • 黄色 - HTML 十六进制 #FFFF00
  • 黄色 - Amiga 颜色寄存器 $0FF0

必须有某种算法(或/和)一些工具来以简单的方式在 HTML 颜色和 Amiga 颜色寄存器之间进行转换?或者?...请帮助:)

0 投票
1 回答
189 浏览

assembly - 汇编语言 move.lp, -(A3)

我正在学习汇编语言(m68000)。

我不明白以下语法

这和下面有什么区别?

0 投票
1 回答
148 浏览

assembly - 嗨,需要一点帮助来了解摩托罗拉的汇编程序

如果我有:

我的指示是:sub.w alpha+2,D0

我的阿尔法是在0000 33004还是在00 05 00 01 00 04 FE

0 投票
1 回答
266 浏览

gdb - GDB、JTAG 和 CPU32 的问题

我正在使用 GDB 和 JTAG 设备 Abatron BDI2000 来调试在摩托罗拉 M68332 上运行的程序。

68332 没有任何硬件断点寄存器。它具有非常原始的调试功能。构建工具不会生成“elf”文件,因此没有可供 GDB 使用的符号。我正在调试的程序也在 Flash 中运行。

实际上 68332 只有一条调试指令 ti。ti 自己跳到下一条汇编指令。ti xxx 步骤直到到达地址 xxx。[是的,这是穴居人时代,冷锤和凿子:)]

我可以使用带有目标遥控器的 GDB 连接到 BDI2000 并发出 GDB 命令“nexti”。由于 68332 的限制,'stepi' 等价于 'nexti'。

单步是唯一可用的命令。

监控命令“monitor ti”状态将程序计数器更改为步进。

如果使用更改寄存器的“监视器”命令,则 GDB 不知道该命令,并且其寄存器缓存变得不同步。我创建了 GDB 函数,每个函数的末尾都有 GDB 命令“flushregs”。这标志着寄存器缓存变脏。GDB 命令将获取一组新的寄存器。

我想创建一个符号表文件进行调试,但没有找到任何关于 GDB 符号文件格式的文档。

我的设置有其他选择吗?我确实有 Flash 区域的 RAM 覆盖。这会允许软件断点吗?

提前感谢您的任何建议。

0 投票
1 回答
625 浏览

gdb - 如何编写 GDB 函数来与程序计数器进行比较

我正在尝试编写一个循环的 gdb 函数,直到传递的参数等于程序计数器。

我正在使用原始 CPU 68332。没有硬件断点。没有支持 GDB 软件断点的操作系统,只有一个指令步骤。GDB 提供了“next count”的“软件”仿真。JTAG 提供运行寻址。

但是,由于某种原因,JTAG 在用于运行寻址时会压倒 CPU,并且出现总线错误。我似乎只能可靠地使用“步骤”单指令。

如果我使用 GDB 'step' 到该地址,我不会收到总线错误。

下面是我对这种 GDB 功能的尝试。

我似乎无法获得正确的语法才能让 GDB 接受并运行该函数。

什么是正确的语法?

0 投票
2 回答
2333 浏览

motorola - 68000内部如何表示指令?

68000内部如何表示指令。我读过有不同类型的指令:单一有效操作字格式指令,简短和完整的扩展字格式指令。单个有效操作字指令似乎代表指令,该指令的低 6 位代表寻址方式和寄存器。这种寻址模式和寄存器是否会告诉您是否遵循简短或完整的扩展字格式指令,该指令又代表指令的操作数。你知道比68000编程参考手册更好的手册吗?

提前致谢

0 投票
2 回答
964 浏览

c - SW浮点实现的方法有哪些?

我需要能够在我的 C 开发环境下使用浮点运算(CPU:~12 MHz 摩托罗拉 68000)。标准库不存在,这意味着它是一个简单的 C 并且不 - 由于其他几个问题,它不是 gcc

我尝试编译 SoftFloat 库和另一个 68k 特定的 FP 库(此时我不知道它的名称),但是对于这个特定平台,它们的依赖关系无法解决 - 主要是由于 libc 的缺陷。我花了大约 8 小时试图克服链接问题,直到我知道我无法再进一步。

但是,只花了半个小时就想出并实现以下一组函数,这些函数充分模拟了我的需要的浮点功能。

基本思想是小数部分和非小数部分都是 16 位整数,因此没有位操作。非小数部分的范围为 [-32767, 32767] 和小数部分 [-0.9999, +0.9999] - 这给了我们 4 位数的精度(足以满足我的浮点需求 - 尽管很浪费)。

在我看来,这可以用来制作更快、更小(仅 2 字节大)的浮点替代版本,范围为 [-99, +99] 和 [-0.9, +0.9]

这里的问题是,除了 IEEE 之外,还有哪些其他技术可以使用定点功能来实现基本的浮点功能 ( + - * /)?

稍后,我将需要一些基本的三角函数,但是网上有很多资源。

  • 由于硬件有 2 MB 的 RAM,我真的不在乎每个软浮点是否可以节省 2 个字节(例如,通过在 int 中保留 9 位和 7 位)。因此 - 4 个字节就足够了。
  • 此外,通过简要查看 68k 说明手册(以及每条指令的周期成本),我做了一些早期观察:
    • 位移很慢,除非性能至关重要(这里不是这种情况),否则我更喜欢轻松调试我的软浮点库而不是 5 个周期更快的代码。此外,由于这是 C 而不是 68k ASM,因此速度显然不是关键因素。
    • 8 位操作数与 16 位一样慢(在大多数情况下给或取一个周期),因此为了性能而压缩浮点数似乎没有多大意义。

您建议在 C 中使用定点实现浮点而不依赖于其他库/代码的哪些改进/方法?

也许可以使用不同的方法并同时对压裂和非压裂零件进行操作?

这是代码(仅使用计算器测试),请忽略函数中间的 C++ - 类似声明和初始化(稍后我将重新格式化为 C 样式):

0 投票
2 回答
4526 浏览

assembly - 什么是 PC 相对寻址以及如何在 MASM 中使用它?

我正在关注 Jack Crenshaw 的编译器教程(如果你看一下我的个人资料,这就是我所有的问题都是关于大声笑的),它刚刚到了引入变量的地步。他评论说 68k 要求一切都“与位置无关”,这意味着它是“与 PC 相关的”。我知道那台 PC 是程序计数器,而在 x86 上它是 EIP。但他使用的语法类似于MOVE X(PC),D0其中 X 是变量名。我已经提前阅读了一些内容,但后来没有说明在 .data 中声明变量。这是如何运作的?要在 x86 中进行这项工作,我会用 in 替换 X(PC)MOV EAX, X(PC)什么?

老实说,我什至不确定这是否应该输出工作代码,但到目前为止它已经完成了,并且我已经向我的编译器添加了代码,添加了适当的头文件等和一个批处理文件来组装、链接和运行结果。

0 投票
2 回答
5358 浏览

simulator - 68K 微处理器最好的图形模拟器是什么?

我是一个初学者,我需要一个图形模拟器来编写基于 68000 微处理器的汇编程序。我找到了 Easy68K 模拟器。它可以工作并且功能很好,但是有没有比 Easy68K 更新/更好的图形模拟器?我需要最新的。