问题标签 [machine-instruction]

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

assembly - 使用 nasm for x86 架构无法正确执行换行符

我正在使用0xa字符串末尾的指令来创建换行符,以便打印的最后一个字符串不会进入下一个。

唯一的问题是,虽然字符串确实在最后一行下方打印了一行,但新行不会重置屏幕上的 x 位置,因此它不是直接在前一个字符串下方打印,而是在前一个字符串下方和之后打印.

示例输出:

如何编写此代码以使字符串直接打印在前一个字符串下?

0 投票
1 回答
571 浏览

c - 程序的汇编和执行 - 两遍汇编器

在阅读一本关于机器指令和程序的书时,我遇到了一个特殊的点,它说汇编程序会扫描整个源程序两次。它在第一次通过/扫描期间建立一个符号表,并在第二次扫描期间将整个程序与其关联。汇编器需要以类似的方式为函数提供地址。
现在,既然汇编程序要通过程序两次,为什么要声明一个函数才能使用呢?汇编器不会从第一遍为函数提供地址,然后在第二遍将其与程序相关联吗?在这种情况下,我正在考虑 C 编程。

0 投票
1 回答
2009 浏览

assembly - 在计算机中表示一条指令需要多少位?

当计算机有 65000 字的内存时,需要多少位来表示具有 53 条不同指令的计算机中的一条指令,所有这些指令都是两个地址?

0 投票
1 回答
185 浏览

mips - 计算机体系结构说明作业

我不期待详细的答案,因为这只是一个家庭作业,我不想浪费大家的时间。

我有一个关于看起来像 MIPS 代码的问题。

我们的'M'机器是内存-内存架构,它具有以下指令:

它采用 64 位浮点值bc存储在内存地址a

然后,我们有一个更小的嵌入式'J'机器,它将'M'机器的指令翻译成一个或多个'J'机器指令:

现在我必须编写一个 J-Machine 程序来实现'mmul.d a,b,c'

但我不明白如何将 64 位机器内存地址加载到 32 位寄存器中。我想如果我们可以将内存地址除以 2:

首先我不知道加载和存储单词的意义是什么,因为我们可以将一个值存储在带有存储单词的寄存器中。

如果您有任何关于这些 32 位和 64 位如何相互通信的文档和/或解释,那将会很有帮助。

0 投票
3 回答
321 浏览

windows - 可执行文件和dll进程

我必须学习什么样的软件或编程语言来独立创建没有任何 .dll 或其他格式的单个可执行程序?

任何建议我都会很感激!

0 投票
0 回答
93 浏览

tuples - 指令选择时的结果改组

在 LLVM 后端,在指令选择期间,我的输入如下所示:

我想选择一个也有一些额外结果的操作码,即用类似的东西替换上面的操作码

当然,如果我只是尝试load用 this替换LDW,它会失败,因为返回类型不一样:

那是因为 for i == 1, From->getValueType(i)ischTo->getValueType(i)is i16

我的问题是,如何在指令选择期间将元组重新(x: i16, y: i16, ch)洗牌(x : i16, ch)?即我将如何做类似的事情

哪里project [0, 2]会有一些神奇的元组改组伪指令,它只负责删除坐标 1?

编辑:找到似乎可能的解决方案,但仍然不起作用

我发现有一个MERGE_VALUES节点类型应该使我正在尝试做的事情成为可能,因为它允许获取一些输入并将它们打包成一个多值输出。所以我尝试了

如果我用 运行指令选择--debug,这看起来很有希望,因为它变成了这样:

进入这个:

这对我来说看起来不错:t18,_,ch是我们存储结果的地方LDW,然后将其t19,ch解包。

但是,这稍后会破坏指令调度:

0 投票
2 回答
5888 浏览

assembly - 使用 8085 微处理器进行 16 位乘法运算

以下是用于将两个 16 位数字相乘的汇编语言。

我不明白指示ORA D。为什么ORing在这里完成?请任何人都可以解释一下。谢谢你!

0 投票
0 回答
135 浏览

llvm - 如何为单元测试创​​建 LLVM 机器指令?

我正在编写一段代码来识别 LLVM 堆栈的机器功能级别的某些模式。我想为此组件编写一个测试驱动程序。测试驱动程序需要创建一段机器代码并将指令指针传递给我的匹配器:

如果这不是一个独立的测试驱动程序,那么在特定的基本块中创建一条新指令或一组指令将很容易。但是,测试驱动程序是一个独立的程序,不会从编译器中调用。不知何故,我似乎需要先创建一个机器函数、一个基本块和一个 MachineRegisterInfo 实例,然后才能创建任何指令。我该怎么做才能正确链接所有内容并且 LLVM 基础架构处于一致状态?

0 投票
0 回答
323 浏览

cpu - 指令寄存器 Motorola 68k

您好,我想知道摩托罗拉 68k 的程序计数器是如何递增的,因为 Mc68k 指令是长度可变的。此外,指令寄存器的长度是多少?指令寄存器如何保存长度可变指令?

0 投票
1 回答
353 浏览

cpu-architecture - 调用加载双字指令时,哪些控制线被断言/设置为 1?

在此处输入图像描述]使用此图,我正在查看此指令以确定哪些控制线是必要的。

ld x5, 40(x9)

x5 = 0x000000ff

x9 = 0x00000fff

我很好奇为了运行该指令,哪些控制线(RegWrite、MemRead、MemWrite、MemtoReg、Branch、Zero、ALUSrc)被断言或设置为 1,以及为什么我理解 load double 指令的部分是 ld RT , Disp(RA) - 但是执行需要什么,为什么?谢谢 - 这些东西(对我来说很有意义)的资源在互联网上非常有限。