问题标签 [fasm]

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

windows - Window doesn't show up (x86 ASM, Windows)

I'm trying to open a window with a listbox in there. Nothing happens though, it stays open for about 5 seconds in Windows' task manager and then closes.

I'm using Flat Assembler (http://flatassembler.net/) to assemble and link my program.

0 投票
1 回答
1814 浏览

assembly - X86 程序集中的浮点除法给出了奇怪的结果

我目前正在学习Simply FPU 教程。所以作为自己的练习,我想学习如何在汇编中划分浮点数。假设我要将 48.6 除以 17.1。这是代码。

代码的输出是

7.62883e+265

这里出了什么问题?

正如 Jester 所建议的,我使用 OllyDbg 检查了代码

ollydbg 截图

我猜结果是正确的,但不知何故它被 printf 搞砸了?

0 投票
2 回答
1631 浏览

assembly - x86 汇编器 cpuid 输出函数解析寄存器结果

我制作了一个 fasm 程序,cpuid输出为:

我使用fprintfrom/lib/ld-linux.so.2来显示这个输出。

所以我需要从EAX,... regs 中读取所有标志,并使用一些功能来查看所有规范。

这意味着从寄存器中读取位或制作一种cpuid输出结构。

你能给我一个解决方案吗?

0 投票
3 回答
7466 浏览

assembly - x86 程序集:movsd 指令问题

这是我的问题:
我尝试使用scanf(in msvcrt.dll) 输入单个浮点值,flat assembler然后我编写了一个简单的“scanf 程序”,如下所示 (in C):

然后使用参数cl.exe编译/FA生成汇编文件,如下所示:

我误解的是movsd指令。根据这里: http: //faydoc.tripod.com/cpu/movsb.htmMove doubleword at address DS:(E)SI to address ES:(E)DI但我没有看到任何设置esiedi在这里和movsd生成的源文件有两个参数,但在链接中的文档中它不应该。有人可以在这里解释一下吗?

0 投票
2 回答
608 浏览

assembly - 将 as86 转换为 fasm

我正在尝试将 as86 的这一程序集转换为 fasm。我有3个问题:

1) 为什么 seg es给定的error: illegal instruction.this 在 16 位中无效?

2) mov byte [0],0x41(FASM 语法) 是否完全等同于mov [0],#0x41(as86 语法)?如果不是,你能告诉我相当于吗?

3) 为什么entry start在 FASM 中给出错误?

这是程序集代码:

as86

和我写的 fasm 版本:

FASM

0 投票
2 回答
4238 浏览

assembly - 在 ASM x86 FASM 汇编器中声明函数

我第一次尝试组装.. 我跳过了 helloworld 并决定直接潜入并做一个 CRC32Checksum :l

现在我很困惑哈哈。。

我的尝试:

如何调用我的 CRC32Checksum?我什至走在正确的轨道上吗?如何在汇编中声明函数?

0 投票
3 回答
3950 浏览

function - ASM x86 FASM 中的函数参数

如何将参数传递给 Assembly 中的函数?我确实推动了最后一个参数,推动了第二个参数,推动了第一个参数..

但是我无法访问Meh函数中的参数。我正在做的事情使程序崩溃了。

0 投票
1 回答
188 浏览

assembly - 不编译汇编指令

我正在使用平面汇编程序,当我想运行某些东西时,它会在汇编程序指令的每一行中写入:“非法指令”。例如在下面的代码中,它会写出.MODEL SMALL不合法的内容,如果 id 删除这一行,它会写出.STACK 200H不合法的内容,依此类推。

对于此代码,它可以工作:

0 投票
1 回答
321 浏览

assembly - 如何保持这个值

我保留了由我的汇编例程修改的字节。

我使用pusha/* 完成了我的工作 */ 然后popa导致分段错误。

如果我用/* 替换pushaand做我的工作 */它工作正常。popapush eax push ecxpop ecx pop eax

但是为什么我会得到这个段错误?它与 有什么关系pusha

下面是我的代码的一部分。在这里,我只使用了八个寄存器中的两个。如果我需要在例程中使用 8,我是否需要推送和弹出每个寄存器?有没有办法pushapopa保留buf?

不要给出段错误:

buf定义为:

段可读可写
buf rb 12

0 投票
3 回答
5911 浏览

linux - 汇编语言中的指针

我试图了解如何在程序集中使用指针。通过阅读一些有关内部的教程,我认为已经了解了一些概念。但是当我去尝试它时,它确实有效。下面是一些将 C 转换为 ASM 的尝试。

C

(这里不是完整的代码,但它是一个字检查,因此,还有两个分别检查 0xFF0000,0xF000000 的 stmts。

ASM:

它返回一个段错误。

并尝试:

这是由 gcc 编译器生成的,您可以在其他一些程序集代码中看到它,返回

invalid symbol

在 FASM 汇编器上。FASM 并不真正支持它,还是我遗漏了什么?