masm

    1热度

    2回答

    我在x86 MASM汇编程序中编写程序,并且需要访问启动程序时提供的命令行参数。我在多个网站上阅读,我可以在Program Segment Prefix或PSP上访问这些参数。 作为一个测试,我尝试打印提供的参数的第一个字符。我的问题是(取决于我如何访问PSP),我得到了错误的字符(或者根本没有字符)。 ... mov ah, 21h int 50h mov ds, dx mov a

    2热度

    1回答

    我目前正在学习汇编编程,遵循书籍“x86语言处理器汇编语言第7版”。 在这本书中,作者试图解释overflow register flag是如何设置 有两句话在这一段,我是不确定的。 ,其执行的最高位位置的值进行异或运算与所述进位结果的高比特 1 XOR 0产生= OF 1 其他问题关于第2点:我知道XOR如何工作,但我不确定哪个位是1和0在1 XOR 0所指的。 这实际上是如何工作的?我对作者使

    0热度

    1回答

    我试图将一个非常大的.ASM文件拆分为几个外部库,只留下main.asm中的主程序。 这是一个游戏,所以我希望我的键盘输入的代码分成input.asm,和我的Adlib声卡代码为music.asm等 不管怎样,我的具体问题是,我的很多程序有类似这样的表达式中使用EQU的行。 mov ax, ((scrWidth*YCoord)+XCoord) 当我移动包含这些行到外部库,并试图组装外部库过程,

    1热度

    1回答

    如何使用G ++, 得到汇编代码指令的地址,我可以给G打印汇编代码++使用以下命令 g++ -S -masm=intel 我得到的汇编代码,但它不包括指令地址。

    3热度

    2回答

    Microsoft operators reference for MASM显示杂项部分中的::运算符。 该商品的链接将打开一个页面;; operator。 我不是这是表中的错误名称还是错误链接的项目。还有其他一些项目确实有错误的联系。 MASM是否有::运算符?它是做什么的?

    1热度

    1回答

    我正在尝试使用masm做回文检查程序,并使用下面的代码,但我总是没有回文作为输出,无法弄清楚为什么。请帮助修改代码。该代码在下面给出以供进一步澄清。 在此先感谢。 read macro mov ah,01h int 21h endm write macro mov ah,02h int 21h endm assume cs:code,ds:data data segment a

    0热度

    1回答

    装配中的初学者级别。 我接收在Visual Studio中的错误是: 1> File2.asm(27):错误A2006:未定义的符号:sprintf的 1> File2.asm(28):错误A2006:未定义的符号:MessageBoxA 文件1是什么处理的计算 文件2就是打印结果的一个窗口。 行处理打印指令是: invoke sprintf, addr szBuf, offset $interm

    2热度

    1回答

    我正在学习与MASM64的x64程序集。我已经读过,前4个参数通过寄存器传递给过程:RCX,RDX,R9和R8。如果有更多的参数,我们通过堆栈传递它们。 但有一些令人困惑。 为什么这个代码不工作: sub rsp, 40h push 0 push FILE_ATTRIBUTE_NORMAL push CREATE_ALWAYS xor r8, r8 xor r9, r9 mov rdx

    -1热度

    1回答

    在我的汇编程序中,我从kernel32库中调用AllocConsole,但是我不知道如何从分配的控制台获取输入。 有没有winapi包含的任何函数会从当前程序的分配控制台获取输入? CALL AllocConsole 的所有功能,如ReadConsole需要输入缓冲器,我不知道如何让输入缓冲区为我分配的控制台,更不用说功能是否确实连我需要什么。 总而言之,winapi中是否有一个函数可以从程序

    -1热度

    2回答

    我使用Visual Studio 2017年 可以说,我命名为“Factorial.asm”一个汇编文件,我打破它到名为“one.asm”和“二二.ASM文件.asm“: Factiorial.asm工作得很好。 Factorial.asm包含 .386 .model flat, stdcall option casemap :none includelib \masm32\lib\msv