问题标签 [irvine32]
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.
loops - 在 x86 汇编中打印 A 到 Z 和 Z 到 A 的程序
我正在编写一个程序,该程序使用循环在汇编中打印 A 到 Z 和 Z 到 A,但是每次打印出“A”后它都会崩溃。
该程序使用了 Irvine32.inc 库中的一些函数,但我确信这与问题无关,所以我暂时忽略它。. . 如果需要,我会提供更多详细信息。
非常感谢!
仲量联行
这是 Irvine32.inc 文件:
assembly - MASM 中 DumpMem 的意外输出 - 程序集
我在 MASM 中编写了一个简单的小型汇编程序,但是我得到的输出是意外的,并且以 3 为前缀。就像我12345
在显示时输入的那样,它显示输出为
31 32 33 34 35
好像我不接受用户的输入并对其进行硬编码一样mystring byte 1,2,3,4,6
-它显示的输出如下01 02 03 04 06
帮助我理解这种行为 - 在此先感谢
这是程序代码:
assembly - 将 BYTE 数组读入 DWORD 数组
我正在尝试完成一项家庭作业,其中涉及在程序集中创建一个 2、4、6、8、10 的 BYTE 数组,将这些值交换为 DWORD 类型的数组,显示结果,交换值的顺序并再次显示在装配中。除了从 8-> 32 位数组交换之外,我的每件作品都在工作。这是我最近的尝试迭代:
string - 从 MASM 中的字符串中删除一个字符
我必须编写一个程序
- 从键盘缓冲区中获取一个字符串并将其放入字符数组中
- 要求删除一个字符
- 从字符数组中删除字符,同时转移其他所有内容
我想用一个堆栈来完成这个。所以这是我的逻辑。
从字符串的末尾开始,将该字符与要删除的字符进行比较。如果不是角色,则将其推入堆栈。如果它是忽略它并继续通过字符串。然后从一开始就把所有东西都放好。
我应该使用一个程序来完成这个。当我逐步完成时,一切似乎都工作正常,直到我尝试离开程序并返回主程序。我相当确定我的程序中的逻辑是问题所在。现在,当我尝试使用字符串“The”并删除 e 时,我得到“he”。
弄清楚了。
回答:
我没有处理从控制台正确获取角色的问题。我也没有处理 ecx = 0 的情况。这是字符数组的第一个位置。所以我没有比较正确的字符,也没有在必要时将第一个字符推到数组中。我已经通过删除来修复它
并将其替换为
然后在 L1 循环之后添加它。
它现在按设计工作。我只是有一些格式问题需要解决。
assembly - CMP 语句未给出正确结果
结束主
当我使用 CMP 命令进行比较时,它只会带我去 JGE.. 无论值是什么.. 有什么解决方案吗?
我也尝试使用 JE 并给出相同的输入,但即便如此,我也获得了更大的标签。
assembly - 未定义符号:WriteFloat
未定义符号:WriteFloat
我的代码正在运行。问题只是WriteFloat。当我将 WriteFloat 更改为 WriteInt 或 WriteDec 时,没有错误。但我无法得到我的确切结果。我有 Irvine32.lib、Macros.inc,我正在使用 masm615,我的编辑器是 textpad。
assembly - 怎么把字符倒着写?
我用汇编语言写了我的名字,我想把它打印出来。我不知道如何向后写。
这是我需要向后打印的代码。
loops - 在汇编 x86 中从 DWORD 中推送和弹出
到目前为止,我尝试了几种方法来打印 DWORD 中的值,但我只得到第一个或最后一个数字,我需要以相反的顺序打印所有 5 个数字。
assembly - 我需要帮助计算随机数 -10 到 10
我需要从 -10 到 10 计算每个数字。我该怎么做?
assembly - 奇怪的汇编语言添加错误
我正在用汇编语言编写斐波那契数列的实现,我遇到了一个奇怪的错误。一开始它可以工作,但是当我达到 8+13(即十六进制的 8+D)时,它给了我 15。我正在使用 Visual Studio 10 / MASM 32 编译/运行它
这是我的代码(Irvine32 是一个包含一些实用函数的库),然后我将解释运行它时得到的输出:
我的eax
寄存器转储DumpRegs
依次为 1、1、2、3、5、8、D、15、22、37、59、90
如您所见,这偏离了正确的 Fib 序列,即“D”。那么,我该如何解决这个问题,更重要的是,我想了解这里发生的事情导致了这个问题。谢谢!
编辑:好吧,我看到了我的愚蠢错误。显然所有的输出都是十六进制的。好吧,我想这只是另一个提醒我不要操之过急。再次感谢你的帮助!