问题标签 [hla]

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

assembly - iii、rr 和 mmm 是什么?

我正在阅读《汇编语言的艺术》一书。我遇到了这一段。

要确定特定指令的操作码,您只需为 、 和 字段选择适当iiirrmmm。例如,要对mov ax, bx指令进行编码,您可以选择iii=110( mov reg, reg)、rr=00( ax) 和mmm=001( bx)。这会产生单字节指令110000010C0h.

在这里我无法理解什么是iii,rrmmm? 有人可以解释一下吗?提前致谢。

0 投票
2 回答
2779 浏览

assembly - 编程练习以适应装配艺术?

我一直在通过《汇编艺术》一书学习高级汇编(HLA),这本书旨在使用高级语言结构来介绍汇编语言的概念。

问题是虽然我似乎理解了书中的很多内容,但书中没有任何练习或问题。那么我在哪里可以找到适合汇编语言的问题集合呢?

0 投票
2 回答
531 浏览

assembly - 在高级汇编 HLA 中添加语句

嗨,我只想添加到变量中,但我不知道该怎么做。

我想noOfItems=numberOfItems + i;

0 投票
2 回答
1442 浏览

assembly - HLA 你好,世界 - 汇编错误

我已经开始阅读 Randall Hyde 的“组装艺术”来开始刺激我的味觉。我从这里下载并安装了 HLA 1.38(我需要 64 位支持),并按照那里列出的文档和上面的书中的描述编写了 Hello, World 程序。

当我运行时hla helloWorld.hla,我收到以下错误消息: helloWorld.asm:66: Error: ambiguous operand size or operands invalid for 'push'

有问题的装配线如下:

由于我对汇编语言非常熟悉,因此我不知道如何使这项工作发挥作用。我假设我的 gas 版本和 HLA 1.38 之间存在差异。所以问题仍然存在:现在呢?

编辑:我尝试只编译“程序”、“开始”和“结束”指令(消除它与标准库有关的可能性),并用一个实际上什么都不做的程序得到相同的结果。

我在 64 位 CrunchBang Linux 上。

0 投票
1 回答
198 浏览

assembly - 装配艺术中的 EX6.x86

我正在尝试手工完成第3.6.7 节在组装艺术中的自我修改代码练习,并且不禁认为我在高/低字节交错方面做错了什么(我知道作者是如何这样做是为了他想象中的 x86 变体)或者文本中有错误。

也就是说,文中的程序是

据说“将以下代码写入位置 100,然后执行它:”

但是,由于多种原因,这对我来说没有意义(首先,它将 00 写入字节 100,这是一条应该跳转到的非法指令;其次,地址中的高/低位字节似乎被切换等)另一方面,如果我只是mov ax, c在 b 循环中的语句中交换高/低位字节,那么这似乎是正确的。所以:

我错了(如果是,为什么?)还是应该交换 b 循环常量中的高/低字节?

0 投票
1 回答
331 浏览

hla - HLA 示例调用错误

'我从 HLA 世界开始,我正在尝试编译示例 CallingHLA,然后 HLA 编译代码,我收到以下错误:

代码是:

错误在哪里(我知道,错误在 TRY 中),但是,我该如何解决该错误?谢谢

0 投票
2 回答
1090 浏览

assembly - 在 HLA 中添加变量?

所以,我正在尝试添加变量,但它不想工作。我有一个非常简单的程序。

我收到以下错误:“第 11 行的文件 'tested.hla' 中的错误 [errid:129712/hlaparse.c]:语法错误,意外 ')',期待 '('。近:<<) >>”

mov 应该将数字移动到变量中..add 应该添加两件事。为什么它不起作用?

我不太了解 hla 所以任何帮助将不胜感激。

0 投票
1 回答
1109 浏览

loops - HLA 高级装配连续循环

问题想从输入循环遍历一个小数,直到剩下的唯一数字是一。但是,一旦第一个循环达到 0,它应该像这样从第一个数字负 1 再次循环,

或者,

我现在有,

如果输入为 4,则打印,

我尝试了一个嵌套的 for 循环来获得所需的连续性,但我不知道如何在不使计算机崩溃的情况下增加它...帮助?

0 投票
1 回答
1075 浏览

bit-manipulation - 为什么有符号整数右移会导致溢出?

给定任何 8 位负整数(符号介于 -1 和 -128 之间),HLA 中的右移会导致溢出,我不明白为什么。如果移动一次,它应该基本上将值除以 2。这对于正数是正确的,但对于负数显然不是。为什么?例如,如果输入 -10,则结果为 +123。

0 投票
1 回答
989 浏览

assembly - HLA - 使用 stdout.put 打印出变量

我开始学习汇编,并且正在使用《汇编语言艺术》一书。

我在尝试运行书中的示例时遇到问题。这是这里的程序:

当我尝试编译它时,它在程序假设打印变量值的行中给出了四个错误,例如:

有人可以帮我吗?