问题标签 [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 回答
1290 浏览

assembly - FASM 引导加载程序输入

我开始在 FASM 中从头开始制作引导加载程序。我只是做了一个基本的输入。但我不知道该怎么做。

这是我的代码:

它的作用是接受控制台上的输入,但是当我按下回车键时,我想检查输入的内容并基于此我想做的事情。

另外,我希望光标转到下一行。现在,如果我按下回车,文本将写在同一行上。

0 投票
1 回答
1755 浏览

assembly - 调用 sprintf 在程序集中崩溃

我正在尝试调用sprintf以格式化字符串并将结果存储在堆栈变量中。但是,我的尝试失败了,它立即崩溃了。

任何想法我做错了什么?

0 投票
2 回答
574 浏览

c++ - 在 fasm 或 nasm 中读取网页的源代码

我有这个 c++ 代码来读取网页的源代码。

我试图将其转换为 fasm 程序集,但没有成功。有人可以帮我把它转换成汇编吗?谢谢(注意我以前从未在 asm 中使用过套接字,所以我不确定这段代码是否关闭,我认为它连接了,但它给出了一个空白消息框而不是网页源代码)

0 投票
2 回答
793 浏览

c++ - 在 C++ 或程序集(FASM)中将原始字节转换为十六进制

我知道这听起来像是一个非常愚蠢的问题,但我正在尝试构建一个简单的十六进制编辑器,但我无法从文件中读取字节。我使用 readfile api 读取 8kb 缓冲区,然后我打算将 8kb 转换为十六进制,但它有时只给我 4 个字节以相反的顺序或有时 0 我不确定我做错了什么。我怎样才能得到它,它将给我完整的 8kb 十六进制表示。如果他们是将整个文件转换为十六进制的更好方法,请告诉我。我只是在寻找读取整个文件并以十六进制表示形式在屏幕上显示的最快方法。谢谢

FASM 语法,但也很容易成为 c++

所有数据都是dd?

更新 我将第二个答案标记为答案,因为我发现 masm 语法程序集看起来像这样,而且速度非常快,但我继续使用 CryptBinaryToString api http://msdn.microsoft.com/en-us/library /windows/桌面/aa379887

这是 fasm 语法汇编代码,但又很容易变成 c++

0 投票
1 回答
274 浏览

c++ - fastcall如何使用超过4个参数

我试图在 assebmly(FASM) 中构建一个使用超过 4 个参数的函数。在 x86 中它工作正常,但我知道在 x64 中使用 fastcall 你必须按照 rcx、rdx、r8、r9 的顺序将参数溢出到阴影空间中,我读到 5 等你必须将它们传递到堆栈中,但是我不知道该怎么做。这是我尝试过的,但它一直说无效的操作数。我知道我做的前 4 个参数是正确的,因为我之前做过 x64 函数,但它是最后 3 个我不知道如何溢出

如果我尝试

它在行上说多余的字符。我还看到有人使用 rsp+20h、rsp+28h 等,但这也不起作用。如何在 x64 上使用 fastcall 调用超过 4 个参数?我还必须在堆栈上腾出空间吗?我看到有些人必须在他们的溢出代码之前加上 add rsp,20h 。我试过了,但它对 invlaid 操作数没有帮助。谢谢

更新

在玩了一会儿之后,我发现它似乎工作的唯一方法是如果我溢出前 4 个参数,然后忽略其余的 5-infinity

0 投票
1 回答
2203 浏览

assembly - 汇编 - 在 FASM 中将二进制转换为十进制

我正在汇编 (FASM) 中进行求和和分运算,试图得到十进制的结果。我写了我将总结 int decimal 的值。当我运行它时,它确实给了我一个输出,但它是一个二进制输出。我可以自己翻译成十进制,但我真正想要的是输出已经是十进制。

0 投票
1 回答
328 浏览

assembly - PoC反调试技术导致程序终止?

我正在自学分析恶意软件,为了增加对一些更常见的反调试技术的理解,我int 2d在汇编中编写了调试器检测概念。然而,当它到达 时int 2d,程序终止而不是跳过预期的操作码。这是我的代码:

它应该做的是跳到 MessageBox 说“没有调试器!”,相反,当它到达int 2d操作码时,即使没有被调试,程序也会崩溃。有什么有用的提示吗?我做错了什么,我该如何解决?如果有帮助,我正在使用 The Flat Assembler。

0 投票
1 回答
628 浏览

assembly - FASM-将参数传递给外部过程

我在将参数传递给主 ASM 文件之外的过程时遇到问题。这是我的代码。它显示了一个主过程 _main(在 main.asm 中),它调用另一个源文件(sub.asm)中的子过程 _sub。子过程打印由主过程指定的字符串。

主.asm:

子组件:

当我运行代码时,我得到了绝对废话的奇怪输出。

我知道当子程序与主程序在同一个文件中时子程序有效(即它打印预期的字符串)并且我知道子程序实际上已成功调用,就像'79h' 被移入 dx 寄存器,而不是 '[bp+04h]',打印字母 'y'。请有人告诉我O做错了什么?

谢谢你。

0 投票
1 回答
905 浏览

c++ - 如何在 FASM 上同时使用 Assembly 和 C/C++ 进行开发?

所以,我正在开发一个操作系统,现在我只在汇编中编写代码。我希望继续使用 C/C++ 制作它。我使用的编译器/编辑器是 FASM(适用于 Windows)。我尝试过使用 MinGW,但是在链接 fasm 的 .o 文件时会出错。如何继续使用 Assembly 和 C/C++ 进行开发?另外,我在互联网上搜索了很多,但我没有找到解决方案。

编辑:这是我正在使用的制作批处理文件:

0 投票
1 回答
1219 浏览

assembly - 汇编非法指令“.model small”

我的代码:

但我收到错误“Ilegal Instruction”和“Instruction = MODEL.SMALL”我使用平面汇编程序 1.71.21

请帮忙!我是组装新手