masm32相关内容

该问题与Assembly x86-32 RET n指令有关

我知道 Ret n 的含义,但我不知道它在维护程序的运行时堆栈中的作用?我有点困惑.ret 与堆栈有关吗? 解决方案 ret n 就像 ret + add esp, n.您可以将它用于 caller-pops 调用约定. 普通的 ret 类似于 pop eip.(pop eip 不是有效指令,但它很好地表达了 ret 的作用).是的,它使用堆栈;阅读文档.http://felixcl ..
发布时间:2022-01-19 15:33:01 其他开发

为什么每当我尝试使用中断时,我的 masm32 程序就会崩溃?

代码如下: .386 ; 最大兼容性的目标.model small,stdcall ;model.代码主要的:整数 20 小时结束主 结果:http://img705.imageshack.us/img705/3738/resultom.png “test.exe 已停止工作" - 到达中断时始终正确. 这是我尝试使用的中断.它应该只需退出程序.我尝试过的其他方法包括字符输入/输出 ..
发布时间:2022-01-12 11:34:45 其他开发

禁用桌面合成会导致选项卡控件闪烁

当我禁用桌面合成时,每当我将鼠标悬停在选项卡上时,我都会闪烁/闪烁.这仅在禁用桌面合成时发生.我试图取消 WM_ERASEBKGND 消息,但它不能解决问题.这个问题的解决方法是什么? 这是我尝试用于 MASM 选项卡控件的示例. http:///www.dreamincode.net/forums/index.php?app=core&module=attach§ion=at ..
发布时间:2022-01-09 21:11:42 其他开发

为什么使用 ebp 比使用 esp 寄存器更好地定位堆栈上的参数?

我是 MASM 的新手.我对这些指针寄存器感到困惑.如果你们能帮助我,我将不胜感激. 谢谢 解决方案 使用 [ebp + disp8] 编码寻址模式比 [esp+disp8] 短一个字节>,因为使用 ESP 作为基址寄存器需要一个 SIB 字节.有关详细信息,请参阅rbp 不允许作为 SIB 基础?.(该问题的标题是关于 [ebp] 必须被编码为 [ebp+0] 的事实.) 第 ..
发布时间:2022-01-06 13:09:06 其他开发

Assembly x86 Date to Number - 将字符串分成更小的部分

我实际上希望在某个问题上指向正确的方向. 我希望将 x86 程序集中的日期从格式“DD-MMM-YYYY"转换为唯一数字,以便稍后可以对其进行冒泡排序并最终转换回来. 所以,当我有一个字符串输入时,即:.数据日期 dw "08-SEP-1993" 我想把它分成 day = "08"月 = "SEP"年 = "1993" 以便我可以进一步处理它(我会将 SEP 转换为“7"等) ..
发布时间:2021-12-18 09:24:28 其他开发

当使用 MOV 助记符将字符串加载/复制到 MASM 中的内存寄存器时,字符是否以相反的顺序存储?

我想知道使用MOV指令将字符串复制到寄存器中是否会导致字符串以相反的顺序存储.我了解到,当 MASM 将字符串存储到定义为单词或更高(dw 和更大尺寸)的变量中时,字符串以相反的顺序存储.当我将字符串复制到寄存器时会发生同样的事情吗? 基于这个问题(关于 SCAS 指令 和关于在 MASM 32 中为变量分配字符串和字符) 我假设如下: 当 MASM 将字符串加载到变量中时,它以相反的 ..
发布时间:2021-12-18 09:17:20 其他开发

MASM32 中的混淆括号

我正在尝试掌握 MASM32,但对以下内容感到困惑: 我认为括号用于间接,所以如果我有一个预定义的变量 .data项目 dd 42 然后 mov ebx, item 将'item'的内容,即数字42,放入ebx和 mov ebx, [项目] 将'item'的地址,即42的存储位置,放入ebx中. 但是控制台应用程序中的以下代码: mov ebx, item调用 d ..
发布时间:2021-11-30 11:11:49 其他开发

x86 程序集 (masm32) 输出乘数产生垃圾字符

我在几个月后为了它而返回组装,但我无法将两个数字相乘并输出结果.这是我的代码: .386.model 扁平化,stdcall选项案例图:无包括 \masm32\include\windows.inc包括\masm32\include\kernel32.inc包括\masm32\include\masm32.incincludelib \masm32\lib\kernel32.libinclude ..
发布时间:2021-09-29 19:40:54 其他开发

如何更改 MASM32 中的链接器设置

我在 Windows 7(64 位)中使用 MASM32 编辑器.默认情况下,我的链接器是“增量链接器版本 5.12.8078",它不链接我的程序.我想使用这个链接器“Microsoft (R) 分段可执行链接器版本 5.60.339 1994 年 12 月 5 日".请告诉我如何更改我的MASM32 设置并使其成为默认链接器 解决方案 在编辑器中加载 \masm32\menus.ini( ..
发布时间:2021-09-29 19:39:49 其他开发

使用加法和减法设置和清除进位标志

我在清除进位标志时遇到了困难,但我想出了一种使用减法来清除它的方法,但我想知道是否有人可以与我分享如何使用加法设置和清除进位标志的更好方法和减法. .databinNum1 字节 11111111bbinNum2 BYTE 00000001b.代码主程序mov al, binNum1 ;AL = 0FFh添加 al, binNum2 ;AL = 00h CF = 1sub al, binNum2 ..
发布时间:2021-09-29 19:35:26 其他开发

x86汇编极限新手查询:“无效指令操作数"?

下面的代码只是我目前正在尝试编写的程序的一小部分,但程序的其他部分没有相关性,所以我只粘贴了必要的部分.无论如何,我想要做的是将 inputLoopCounter 中存储的值移动到 ecx 中,以确定循环应该执行多少次.但是,当我尝试组装这个程序时,我收到了问题标题中提到的错误.有人能解释一下原因吗? .datainputLoopCounter BYTE -1.代码mov ecx,inputLo ..
发布时间:2021-09-29 19:32:30 其他开发

x86 (masm32) 中的冒泡排序,我写的排序不起作用

我正在尝试在 x86 (masm32) 中编写冒泡排序.排序不起作用.我已经测试了一些代码,它似乎在比较和交换部分搞砸了.出于某种原因,比较函数总是将 2 分配给 EAX.如果我能弄清楚为什么我可以让程序运行. 提前感谢您的帮助. .dataaa DWORD 10 DUP(5, 7, 6, 1, 4, 3, 9, 2, 10, 8)计数 DWORD 0;DB 8 位、DW 16 位、DW ..
发布时间:2021-09-29 19:29:20 其他开发

x86 MASM 程序集 - 尽管 FlushConsoleInputBuffer 输入缓冲区仍保留旧输入

为了在 MASM 中练习汇编,我创建了一个应该执行以下操作的小程序: 在屏幕上打印“Type a:" 从输入缓冲区读取一个字符,然后刷新 如果字符是“a",则跳出循环结束程序,否则从第一步开始重复 我的代码如下: .386.model flat,stdcall包括 \masm32\include\kernel32.inc ;定义用于 kernel32 库的符号includelib ..
发布时间:2021-09-25 19:17:22 其他开发

该问题与 Assembly x86-32 RET n 指令有关

我知道 Ret n 的含义,但我无法弄清楚它在维护程序运行时堆栈方面的作用?我有点困惑.ret 与堆栈有关吗? 解决方案 ret n 就像 ret + add esp, n.您将其用于 caller-pops 调用约定. Plain ret 就像 pop eip.(pop eip 不是有效的指令,但它很好地表达了 ret 的作用).是的,它使用堆栈;阅读文档.http://felix ..
发布时间:2021-07-09 20:43:42 其他开发

无法连续两次从变量输出协处理器浮点数

下午好!在此示例中,我仅用逗号添加两个数字,将变量保存在 tbyte 中,并在屏幕上连续两次显示相同的变量,但这是我第一次获得 11.1 ,并且第二次 4.667261E-062 .为什么会这样? 还有一个问题,是否可以在 tbyte 中以某种方式按数组类型保存和访问数字?例如,将数字存储在 dd 中,我只能以4的增量进行保存和读取,例如,结果[0] ,结果[4] 等.是否可以将其与 tby ..
发布时间:2021-05-31 20:20:23 其他开发

具有lib的MASM32中的crt_printf和ExitProcess

crt_printf,crt_scanf,ExitProcess 带有masm32v11r的Windows 7作为环境路径 在.asm文件中,我想调用crt_printf进行打印(或调用ExitProcess结束主过程).但是我的代码附带: .386.model flat,stdcall选项案例图:无includelib D:\ masm32 \ lib \ msvcrt.libp ..
发布时间:2021-05-02 18:48:57 其他开发

读取反汇编代码

我用masm32编写了简单的Hello单词程序。但是,当我尝试使用IDA对其进行分解时,我得到的输出会更大(我不会在此处写它,因为它会占用很多空间)。我不明白为什么会有所不同。 解决方案 这是正常现象。编译是一个“耗时”的过程,这意味着如果先编译代码然后反编译代码,就不能保证获得与最初放入的代码完全相同的东西。同一件事也适用于汇编语言。汇编和链接代码时,这是一个单向过程。 这就是为什 ..
发布时间:2020-10-22 04:13:50 其他开发