问题标签 [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.
assembly - 控制装配的 irvine32 中的输入大小?
当我从用户那里获取玩家姓名时,如何限制输入的大小?我是这样使用的:
但是当玩家输入超过 36 个字符时,计算机会发出警报声,并且剩余部分正在写入 player2 名称的一部分。
linux - Kip Irvine - X86 处理器的汇编语言 - 与 Linux 的相关性如何?
Kip Irvine Assembly Language for x86 Processors的书与 Linux 操作系统的相关性如何?换句话说,这是一本关于 x86 的书,这与在 Linux 上学习 x86 真的有很大区别吗?操作系统肯定只是 ASM 之上的抽象层吗?
我想知道是否要买这本书,但我对专注于 Linux 的编程更感兴趣。
assembly - 在汇编中逐位减去两个整数
我正在尝试逐位减去 2 个整数,并得到了这个算法
我已经实现了这一行b = ((not x) and y) or ((not x) and b) or (y and b)
。我应该如何在我的代码中实现算法的最后一行
这是我到目前为止所拥有的:
该算法从计算循环标签开始。我需要保存存储在al
寄存器中的值,以实现算法的最后一行,但是由于使用了dl
and bl
,我应该使用哪个通用寄存器来存储 的值al
?
visual-studio - 错误 A2013:.MODEL 必须在此指令之前
稍微修改一下 MASM,我不知道这些错误是什么意思,或者我是否正在编写接近正确的代码。正如目前所写的那样,它应该只是问候用户,询问两个数字并说再见(在进行任何计算或任何特殊操作之前尝试让骨架工作)。
这些是我得到的错误:
assembly - 循环执行多次
从这个循环中得到一个奇怪的结果。它执行的次数超出了应有的次数。它应该在重新计算时继续显示 fib_2。到底是怎么回事?
编辑:在其余代码中添加
assembly - MASM615和切换两个字符串的地址
我正在尝试编写一个 MASM615 汇编程序,其中部分程序在需要时切换两个字符串的地址。但是,我不知道该怎么做。基本上,我需要通过引用将两个字符串指针传递到一个新过程中,并且该过程会切换地址。
到目前为止,我有:
所以你看,地址被压入堆栈。在该过程中,我将它们从堆栈中弹出到相同的寄存器中(似乎有点毫无意义,但是哦)......然后呢?我觉得我需要以某种方式告诉str1
指向中的地址ebx
,并str2
指向中的地址eax
,但是如何?!
编辑:当前测试代码....
assembly - MASM 浮点结果变成一个大整数值
我正在尝试将两个整数相除并得到一个浮点数,然后在结果部分中显示浮点数。问题是,它现在显示为一个非常大的整数,我不知道我是否做得对。
代码:
定义:
有问题的代码:
然后稍后显示:
我正在使用 irvine32 库,这是我第一次尝试在汇编语言中使用 float。
assembly - 在汇编中实现归并排序
我正在尝试将合并排序算法从高级语言(可能是 java?)直接翻译成 MASM615。我要翻译的实现如下:
我相信我在 MASM615 中的实现几乎完全复制了这一点。但是,程序在运行时挂起。我测试了 mergeSort 过程,它运行良好。因此,我认为合并过程中存在一些错误。然而,我看了好几遍,发现它是一个精确的副本,据我所知。这是我的书面代码:
请注意,我注释掉了原始数组的一部分。最终长度为 20,但我想让它首先与 5 一起正常工作!;) 我一遍又一遍地查看我的代码,没有看到我的错误。我做错了什么?
编辑:意识到我有时仍在思考高级语言!在更高级别的语言中,您将数组索引增加 1。在汇编中,您需要将索引增加 4,同时考虑到每个元素的大小。这些更改现在反映在上面的代码中,但仍然不起作用!
assembly - MASM 中的奇怪行为:“dec”指令导致减法 2
我正在编写一个程序来显示当前时间和日期 10 秒。我被指示我只能为此使用 smallwin.inc。我编写了一个使用 Irvine32.inc 的程序,但是当我切换到 ONLY smallwin 时,我需要编写一些输出数字的程序。当我添加这些时,一个非常奇怪的行为开始发生!我使用调用“dec repTime”,它会减少 2 而不是 1!我已经尝试过“sub repTime, 1”,它仍然是一样的!我什至将 repTime 移到 eax,然后减去 1,然后将 eax 移回 repTime,它仍然减去 2!
我编写的程序应该运行 10 秒。由于减法 2 的问题,它运行了 4 秒!怎么了?!?
这是我的代码:
assembly - 为什么我的汇编程序不起作用?
我对组装完全陌生,现在我正在使用 X86 组装。我正在使用 NASM,现在我的代码没有编译。我从一本书中得到它,基本上代码适用于字符串:
就像我说我正在使用 NASM 所以这可能是问题但它应该仍然可以工作,但是当我使用它编译它时nasm -f win32 other.asm -o other.o
它会出现大量错误,其中大部分是预期的解析器指令。我使用的是 Windows 8 64 位,但它没有理由不能运行 32 位程序 - 如果我错了,请纠正我。MASM 编译器的问题在于它说我需要精确的 Visual C++ Express 2005 (PRECISELY 2005) 才能下载,否则它不会下载。我怎样才能让这个程序与我将来可能编写的其他程序一起工作 - 我确实记得将 nasm 汇编器放入我的 C 编译器的 bin 文件中。就像我说的我很新,不管你信不信,这本书实际上并没有告诉你如何运行这个程序。还有一种方法可以在没有 VS 2005(我似乎无论如何都找不到)或任何 VS 的情况下下载 masm
其他程序(在 ASM 中)似乎也没有在它上面运行。我很确定这是 Windows 版本,否则一开始就不会下载。