问题标签 [easy68k]

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 回答
1614 浏览

assembly - Easy68k 汇编 ORG 指令

我知道有人问过类似的问题,但还是听听吧。

这个学期我写了很多 Easy68k 程序,我很好奇为什么 org 指令总是设置为 1000 美元、2000 美元或 2500 美元。

虽然答案是“按照个人惯例”,但我对理解以下内容更感兴趣:

  • 设置 org 指令有什么好处,CPU 可以执行从 0x0 到 0xffffffff 的任何内容,那么需要将程序开始一直偏移到 0x1000 吗?

例如:

有效,但偏移了 4096 字节

也有效,但根本没有抵消

那么为什么需要这个指令呢?我没有为任何特定目的保留 [0x0, 0x1000),那么保持这个偏移量有什么意义呢?

到目前为止的结论

  • Easy68k 没有全局变量的默认位置,它们被放置在 pc 中(通常按照惯例放在程序的末尾)。
  • Easy68k 的默认堆栈指针在 0,向下增长到 0xffffffe,向下(它是字对齐的):这意味着与 [0, 0x1000) 区域没有冲突。事实上,它会在破坏 [0, 0x1000) 区域之前破坏代码。

我真的很好奇。

提前谢谢!

〜德米特里

0 投票
0 回答
263 浏览

instructions - 用进位指令合成加法

我最近被要求在处理器没有的情况下使用其他指令来合成 ADC(带进位加法)指令。我将如何在 68k 机器上解决这个问题?

0 投票
1 回答
1089 浏览

assembly - EASy68K 组装 - 第一个程序错误

我是汇编语言的新手,所以我的第一个程序有点麻烦。我应该基本上重新创建以下代码,显然汇编语言除外。谁能帮我修复错误并帮助我让我的程序正常工作?我想我很接近。

原始非汇编代码:

这是我到目前为止所拥有的,但我遇到了错误。我将在底部发布错误。

第 4 行:错误:无效的寻址模式 第 7 行:错误:无效的寻址模式

0 投票
1 回答
4764 浏览

assembly - 十进制显示寄存器 - 汇编语言EASy68K

我试图以十进制显示 D0,但是当我运行程序时,什么都没有显示。我没有收到任何错误,当我查看寄存器 D0 时,我看到了十六进制的预期数字,但没有显示十进制等效数字。我正在尝试使用 TRAP 来做到这一点,我们在课堂上展示了这一点。我究竟做错了什么?有问题的代码行是代码开始处的第 17 行。它说“TRAP #15 以十进制显示 D0”。谢谢你的帮助。

0 投票
1 回答
233 浏览

assembly - 汇编编程 - 初学者

我是汇编语言的新手。有人可以向我解释以下代码段的作用吗?非常感谢您的帮助。

0 投票
1 回答
680 浏览

assembly - 将汇编语言翻译成英语 (EASy68K)

在课堂上给出了以下代码,并且应该在右侧的注释中描述每一行的含义。它是否正确?

0 投票
1 回答
2552 浏览

assembly - 在汇编语言中添加两个十六进制值 (EASy68K)

我想创建一个使用 ADD.B、ADD.W 和 ADD.L 将两个十六进制值相加的程序,看看有什么区别。我是汇编编程的新手,所以我似乎无法完全正确。没有错误,但是当我运行程序时,没有显示结果。寄存器 D3 中似乎也没有存储任何值。谁能告诉我我做错了什么?非常感谢您的帮助。

0 投票
1 回答
184 浏览

assembly - 如何编写我自己的测试代码

我不知道英文表达是什么,但我的意思是你用来确保代码正确的代码,每个可能的情况都有效,并且程序正在做它应该做的事情(比如,如果我编写代码要使用矩阵进行操作,我想确保它适用于 3x3、5x100 和各种矩阵,这就是我对测试代码的意思)。

所以我必须为大学做这个项目,主要问题是到目前为止,我不知道如何制作测试代码,所以我正在编写我无法测试的代码。

我确实有一些组装经验,去年我们必须在组装方面做一个巨大的项目,但它是 88k,今年是 68k,而且也很大。

项目本身是关于 I/O 的,我必须让它在“缓冲区”中读写(DUART 被称为:MC68681 DUART,我相信汇编器本身被称为 MC68000)。

所以我必须命令它在缓冲区中写入一些东西并检查它是否正在发送,并且在我想检查当我尝试读取字节时,它是否正确地完成了,等等。

请告诉我是否应该添加更多信息或更好地解释自己,很难用英语表达这些概念。

0 投票
1 回答
1900 浏览

assembly - 编写一个程序来清除位 7 和 6,设置位 5 和 4,并切换位 3、2、1 和 0?

内存中地址为 $9000 的字节。

编写一个程序来清除第 7 位和第 6 位,设置第 5 位和第 4 位,并切换第 3、2、1 和 0 位。

这就是我所拥有的,它不起作用。

任何帮助将非常感激

0 投票
1 回答
693 浏览

assembly - 通过寄存器传递内存地址

如何将内存地址从寄存器传递给其他?我的以下例程从堆栈接收字符串内存地址(是的,这是必要的),然后尝试放入D1寄存器,但它不起作用,当我尝试运行时,EASy68k模拟器崩溃(或进入无限循环?)。

代码:

更新:我更新了从堆栈推送和弹出参数的方式。更改为使用PEA看起来完全符合我要求的指令,但它仍然不起作用。