问题标签 [mic-1]
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.
mic-1 - 在 IJVM 中进位加法
IJVM 中的 IADD 指令将两个 1 字数字相加。当我添加EEEEEEEE
到自身时,我得到DDDDDDDC
. 进位1会发生什么?我怎么才能得到它?它是否保存在寄存器中?
assembly - Mic1,微汇编语言,创建乘法器
我目前正在使用微汇编语言 (MAL) 并使用 Mic1mmv 模拟器对其进行测试。我试图弄清楚如何制作一个将两个数字相乘的程序,但我正在努力弄清楚如何做到这一点。
下面是加减法的 MAL 代码:
例如,假设我想做 3 x 4。我这样做的想法是取 3 并将其与另外 3 相加 4 次(3+3+3+3),但我还没有弄清楚如何我可以制作一个 if/else/loop 或倒计时来跟踪它被添加在一起的次数。
如果有人知道如何解决这个问题或对此有任何提示,我将非常感激,谢谢!
assembly - 这组指令在 Mic-1 [MAL 语言] 中的含义
下面的 Mic-1 指令序列实现了一条新指令 bish8pu x(x 是二进制代码中 8 位的偏移量)。这组指令的含义是什么?
非常感谢
algorithm - 在 Mic-1 宏代码中实现最少 3 个数字
我有以下算法来找到至少三个输入数字:
我正在尝试按照上述算法实现 Mic-1 微代码:
OP1, OP2, OP3 = any 16 bit 2s complement value
我对 Mic-1 还很陌生,希望得到关于上面这个 Mic-1 代码的任何输入。有没有更好或更短的方法可以在 Mic-1 中找到至少三个数字?请指教。
java - IJVM 练习,交换 4 个元素堆栈中的 2 个元素
我正在尝试创建一个微程序函数,给定堆栈中的 4 个值,交换第三个和第四个值。我称它为“mswap”,这是迄今为止的微码:
mswap1 SP = SP - 1
mswap2 SP = SP - 1
mswap3 MAR = SP - 1
mswap4 rd
mswap5 MAR = H
mswap6 wr
mswap7 MAR = SP
mswap8 rd
mswap9 MAR = SP - 1
mswap10 wr
mswap11 MAR = H
mswap12 rd
mswap13 MAR = SP
mswap14 wr
mswap15 SP = SP + 1
mswap16 SP = SP + 1; goto Main1
这是一个示例程序:
.main 开始: BIPUSH 0x39 BIPUSH 0x30 BIPUSH 0x36 BIPUSH 0x35 MSWAP OUT OUT OUT OUT HALT .end-main
它应该给出 5690 的输出 可悲的是,输出只有 56 就像我“错过”了两个堆元素。这是由于过度使用 SP = SP -1 造成的吗?在编写类似的函数来交换第二个和第三个元素时它工作得很好
assembly - 如何在 IJVM 中取反一个数字?
我正在考虑一种NOT
为 IJVM 实现操作/指令的方法,以便我可以编写一个乘法 JAS 方法,但是我在尝试实现一个否定方法时遇到了麻烦。
任何人都可以帮忙解决这个问题吗?
java - 如何在 IJVM 上创建 IUSHR4?
我需要创建 MAL 的扩展。所以,首先我尝试添加 mic1sim.mal
但不起作用!有人可以解释我哪里错了吗?
assembly - 如何在 IJVM 中输出超过 9 的数字?
我搜索了很多,但没有成功。也许你可以帮助我,提供一些建议或来源,我可以找到答案。如果在带有 MIC-1 模拟器的 IJVM 架构中超过 9,我无法理解如何输出一个数字,我有一个简单的 2 数字加法代码。
cpu-architecture - 将 mic-1 中的寄存器向右移动,无需获取
这是我第一次在这里发布问题,所以如果没有以正确的方式描述,请随时给我一些反馈。对于实际问题:
我想知道是否有一种方法可以将其中一个寄存器中的一个字向右移动 2 个字节,而无需提取或算术移位器(EX with fetch:只需将字写入内存地址 0x0 并获取 0x0 -> << 8将其复制回 OPC 或其他任何东西,然后 OR 到所需的寄存器,获取地址 0x1 并再次 OR 到寄存器,这次不向左移动)。
所以一个包含 0xcccc1111 的寄存器应该变成 0x0000cccc
以下是对 mic-1 微架构的简要说明。
谢谢您的帮助
目的是以更有效的方式将从内存 0x2 开始的单词复制到 LV 中:这应该可以工作,但它同时使用了 fetch 和 write,它可能完全是垃圾:(