问题标签 [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.
assembly - x86 yasm,cmpsb 上的段错误;cmpsb的正确使用?
作为练习,我正在用 yasm 编写冒泡排序的开头。但是我每次都在下面的最后一条指令中出现段错误,我不明白为什么。
我的理解是 cmpsb 比较 si 和 di 中的字节。为什么要发生段错误?这对我来说一定是非常简单的错误,但我没有看到。通常 cmpsb 用于重复的上下文中,但我认为它也可以在这里工作。谢谢你的帮助!
assembly - 防止此 YASM 警告的正确方法是什么?
我在 YASM 中有这行代码(32 位代码):
哪个工作正常,但是给了我这个警告:
有很多方法可以绕过警告,或者压制,甚至完全忽略它。
但我想知道的是:
首先避免此警告的正确方法是什么?
assembly - 汇编语言中的 PCI 设备检查
我有一个简单的程序,必须读取PCI configuration space
(仅适用于第一个 PCI 设备)。但它不起作用。雅思:
这是代码:
谢谢。
PS 我使用 Bochs 进行仿真,使用 YASM 作为汇编程序
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 包,然后重做它没有运气。有任何想法吗?
assembly - 使用 YASM 汇编程序的正确语法
使用 YASM 汇编器时,有时会在输入时出现语法错误,例如:
nop dword [ds:rax+rax+0x0]或nop dword [eax+eax]等。
拆解:
在没有语法错误的情况下输入这个的正确方法是什么?
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
assembly - 简单的引导加载程序和 bochs
我有一个用 AT&T 语法编写的简单引导加载程序。
我用yasm -f bin -o boot.bin loader.s
它来编译它,然后用 bochs 来运行。
不过bochs
说有no bootable device
。
所以,我有以下问题:
- 如何使用 AT&T 语法重写它(我必须使用哪种结构
times 510-($-$$) db 0)
? - 博克斯有什么问题?
谢谢!
PSBochs
是在支持下编译的x86_64
,但它不适bochs
用于官方 arch repo。
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 个操作数一起使用,如以下代码段所示:
linux - 我正在尝试在汇编中创建一个三角形的点,但它不起作用
我正在尝试通过获取用户输入的值(以改变生成的三角形的大小)并使用它来编写递减的点线来在屏幕上创建一个点三角形。
这是代码:
问题:
- 在运行程序时,我希望用户输入的数字用于第一行的点数。但是,当我输入任何数字时,会打印出大量的行,每行都带有一个点,然后大约一秒钟后,会打印出包含 32768 个点的行。接下来是一条有 32767 个点的线等。每条线上的点数继续减少,直到有 1 个点的线。
我注意到 32768 是 10000000_00000000 的十六进制,但除此之外我完全被卡住了,我真的很感激任何帮助!
PS我正在使用x84-64 linux并使用YASM组装
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有什么建议吗?