问题标签 [mano-machine]

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 投票
2 回答
1335 浏览

assembly - 两个二进制数的除法

所以在这里我面临一个问题。我的指令集中只有 25 条指令。(没有乘法、除法、减法、递增指令)。现在,我正在尝试执行二进制除法。我的问题是,我怎么知道除数是否小于被除数以便将它们都减去(以 2 的补码形式)?

指令系统: 在此处输入图像描述

0 投票
1 回答
889 浏览

assembly - 基本计算机中的地址符号表

我不明白我们如何获得地址符号表中标签的十六进制代码。

[程序减去 2 个数字]

上一个程序的地址符号表:

地址符号表扫描

0 投票
0 回答
1177 浏览

assembly - 在从变量加载值之前清除累加器

我一直在写一个这样的程序:

我相信它在大多数情况下是正确的,但不幸的是,没有一个非常可靠的 mano 汇编编译器来测试我的代码。无论如何,我唯一关心的是我在第 17 行有CLA指令。我这样做是为了将 DF1 设置为零,因为我们想在其中加载一个新的值1。这是正确的做法吗?

如果有人对我可能错过的错误或改进有任何其他批评或建议,请提供您的意见。

非常感谢任何和所有帮助/输入。谢谢。

0 投票
3 回答
13995 浏览

assembly - 隐含寻址模式和立即寻址模式之间的区别?

隐含:操作数在指令定义中隐含指定。例子:CLA, CME, INP.

它主要用于零地址(堆栈组织)和一地址(累加器组织)指令。

立即数:操作数在指令本身中指定,主要用于常量。示例:ADD R1,#3,MUL R1,R2,#7

但问题来了如何检查指令:

1)PUSH 3

2)LD 7

第一个是零地址指令(基于堆栈),第二个是累加器指令。在这两条指令中,操作数都在指令本身中定义。哪种寻址模式更受欢迎,或者最能描述它们?

如何检查指令是隐含的还是即时的?


x86 上隐式操作数的更多示例:SAHFLAHFCPUID.

来源:https ://en.wikipedia.org/wiki/CPUID

在汇编语言中,CPUID 指令不采用显式参数,因为 CPUID 隐式使用 EAX 寄存器(有时是 ECX)来确定在 EAX、EBX、ECX 和 EDX 中返回的信息。

来源:http ://www.felixcloutier.com/x86/LAHF.html

来源:http ://www.felixcloutier.com/x86/SAHF.html

使用示例:(来源:https ://www.slideshare.net/rbtaccess/flag-control )

更多示例包括CLCSTCCMC,它们分别清除、设置或翻转进位标志 CF。(CF 是 FLAGS 中的一个位,而不是整个寄存器。)