问题标签 [yasm]

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

assembly - x86 yasm,cmpsb 上的段错误;cmpsb的正确使用?

作为练习,我正在用 yasm 编写冒泡排序的开头。但是我每次都在下面的最后一条指令中出现段错误,我不明白为什么。

我的理解是 cmpsb 比较 si 和 di 中的字节。为什么要发生段错误?这对我来说一定是非常简单的错误,但我没有看到。通常 cmpsb 用于重复的上下文中,但我认为它也可以在这里工作。谢谢你的帮助!

0 投票
1 回答
478 浏览

assembly - 防止此 YASM 警告的正确方法是什么?

我在 YASM 中有这行代码(32 位代码):

哪个工作正常,但是给了我这个警告:

有很多方法可以绕过警告,或者压制,甚至完全忽略它。
但我想知道的是:

首先避免此警告的正确方法是什么?

0 投票
1 回答
2148 浏览

assembly - 汇编语言中的 PCI 设备检查

我有一个简单的程序,必须读取PCI configuration space(仅适用于第一个 PCI 设备)。但它不起作用。雅思:

这是代码:

谢谢。

PS 我使用 Bochs 进行仿真,使用 YASM 作为汇编程序

0 投票
2 回答
3236 浏览

ffmpeg - ffmpeg 酿造 yasm

我正在尝试通过 brew 安装 ffmpeg。我用 yasm 得到的错误是

“错误:在安装 ffmpeg 之前,您必须‘brew link pkg-config yasm’”

这样做时,我被告知我的权限不足。

“正在链接 /usr/local/Cellar/pkg-config/0.28...警告:无法链接 pkg-config。取消链接...错误:权限被拒绝 - /usr/local/share/doc”

权限是 -rw-rw--- 。我试过取消链接 yasm 包,然后重做它没有运气。有任何想法吗?

0 投票
0 回答
231 浏览

assembly - 使用 YASM 汇编程序的正确语法

使用 YASM 汇编器时,有时会在输入时出现语法错误,例如:

nop dword [ds:rax+rax+0x0]nop dword [eax+eax]等。

拆解:

在没有语法错误的情况下输入这个的正确方法是什么?

0 投票
0 回答
880 浏览

linux - yasm 安装在我的系统中,但安装在其他文件夹中

我正在尝试安装 ffmpeg 和 x264。为此,我已按照“ https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide ”中给出的说明进行安装。我已经安装了 yasm 并使用命令 yasm --version 检查它显示成功安装的版本。但是当我尝试安装 ffmpeg 时,它会抛出一个错误,比如找不到 yasm。我已经提到了一些网站,它打算让我检查路径。yasm 默认路径是 /usr/local/bin,但在我的系统中它显示为 /home/janpal/bin/yasm。我也以root用户身份尝试过。有人可以帮我将它安装在正确的路径中。我正在使用 ubuntu 10.04

0 投票
2 回答
1188 浏览

assembly - 简单的引导加载程序和 bochs

我有一个用 AT&T 语法编写的简单引导加载程序。

我用yasm -f bin -o boot.bin loader.s它来编译它,然后用 bochs 来运行。

不过bochs说有no bootable device

所以,我有以下问题:

  1. 如何使用 AT&T 语法重写它(我必须使用哪种结构times 510-($-$$) db 0)
  2. 博克斯有什么问题?

谢谢!

PSBochs是在支持下编译的x86_64,但它不适bochs用于官方 arch repo。

0 投票
2 回答
548 浏览

assembly - 我应该使用哪些 AVX 寄存器来避免 3 字节 VEX 前缀?

我目前正在为 x64 实现 Bitslice DES,我想知道如何使用以下 AVX 指令尽可能避免使用 3 字节 VEX 前缀:

有人告诉我应该尽可能使用 2 字节的 VEX 前缀而不是 3 字节的前缀,以使代码更小更快,但我不知道具体该怎么做。我在某处读到我应该使用 xmm[0-7] 而不是 xmm[89] 和 xmm1[0-5],但我不知道哪些操作数组合会给我 2 字节 VEX 前缀而不是 3-字节的。这些指令与 2 或 3 个操作数一起使用,如以下代码段所示:

0 投票
1 回答
1430 浏览

linux - 我正在尝试在汇编中创建一个三角形的点,但它不起作用

我正在尝试通过获取用户输入的值(以改变生成的三角形的大小)并使用它来编写递减的点线来在屏幕上创建一个点三角形。

这是代码:

问题:

  • 在运行程序时,我希望用户输入的数字用于第一行的点数。但是,当我输入任何数字时,会打印出大量的行,每行都带有一个点,然后大约一秒钟后,会打印出包含 32768 个点的行。接下来是一条有 32767 个点的线等。每条线上的点数继续减少,直到有 1 个点的线。

我注意到 32768 是 10000000_00000000 的十六进制,但除此之外我完全被卡住了,我真的很感激任何帮助!

PS我正在使用x84-​​64 linux并使用YASM组装

0 投票
0 回答
3838 浏览

windows - 在 Windows 7 下构建 libvpx - yasm 错误

我正在 64 位 Windows 7 下构建 libvpx(但希望针对 win32 平台构建),按照此处的说明进行操作:

http://www.webmproject.org/code/build-prerequisites/

我正在使用 Mingw 并使用 yasm 1.1.0 执行此操作。

我主要完成了所有流程,这导致为 MSVS 2010 创建了所有项目和解决方案文件。

当我在 MSVS 2010 中打开解决方案时,libvpx 无法构建(所有其他项目都依赖于此),出现以下错误:

在 SO 和其他网站上搜索给了我类似的东西,比如:

http://code.google.com/p/webrtc/issues/detail?id=197

但据我了解,它与 webrtc 有关,并且 OP 可能也在构建 yasm,这与我的情况不同 - 我不是在构建 yasm,而是从其网站下载。

简而言之,以下步骤会在我这边产生这个问题:

  • 安装明威
  • 确保 MingW/bin 在系统路径中
  • 下载yasm(通用可执行文件)
  • 复制 yasm-1.1.0-win32.exe 到 MingW/bin 目录
  • 将 yasm-1.1.0-win32.exe 重命名为 yasm.exe
  • 打开命令提示符,确保我不在 Mingw/bin 目录中,然后输入 yasm
  • 它响应: yasm: 没有指定输入文件,所以我确信 yasm.exe 是从其他目录中找到的
  • 遵循http://www.webmproject.org/code/build-prerequisites/中的所有步骤
  • 直到构建 VS 项目
  • 运行制作
  • 确保生成所有项目和 .sln 文件
  • 在 MSVS 2010 中打开 .sln 文件(需要从 2008 转换到 2010,并且转换过程完美无缺)
  • 构建解决方案 - 它失败(但构建 obj_int_extract 给我 obj_int_extract.exe 文件)
  • 然后尝试只构建 vpx 项目,给我上面提到的与 yasm 相关的错误

现在,由于我没有构建 yasm,而仅依赖 yasm.exe,所以我不应该收到此错误,对吧?同样出于同样的原因,我真的不在乎 x86insn_gas.gperf 或 x86insn_nasm.gperf 是否存在 - 如果我错了,请纠正我。

有没有人遇到过这个问题,可以更好地指导我吗?

作为参考,make 命令的输出在视图中没有显示什么奇怪的东西,这里是:

编辑:我把 MSVS IDE 路径放到系统路径,然后再次运行 make 命令,这一次,上面的警告没有显示,相反,我得到了更多的警告(与 MSBuild 相关):

由于字符(30k)限制,仅提及相关位:

当由 MSVS 2010 编译时,我得到:

希望尽快找到解决办法

谢谢你的时间!

Edit2 (20-12-2013): 好的,根据 Michael 的建议,我尝试使用 cygwin 执行此操作(MingW 可能会处理 ; 不同),但遇到了一些错误:

关于cygwin有什么建议吗?