问题标签 [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.

0 投票
1 回答
195 浏览

assembly - 程序执行'ret'但不执行它

我写了 GreatCommonDivisor 并使用了声明 ret down repeat....until,但发现它仍然进入repeat ..... until并导致除以零错误。

我认为ret弹出调用者下一行的地址,但为什么它会跳转到repeat...until

提前谢谢。

0 投票
1 回答
2134 浏览

assembly - 如何在汇编 x86 中使用 mod

我有一个关于汇编 x86 架构的问题。

所以我应该做这些算术方程:

对于 的最后一个等式mod 7,我得到一个错误,“整数溢出”,这是由于bl我认为使用。

如果我做这样的事情

那么我会得到al商,ah是余数。

但是我怎么能mod不用ax注册呢?

0 投票
2 回答
1920 浏览

assembly - 在汇编 x86 中计算算术表达式

我有一个汇编 x86 问题

所以我必须为这段代码做 2 个算术方程

这是我的输入

我期望最后一条指令后 y 的值为 7dd(2013)

但是我得到寄存器 ecx 的值是 0000FFFF,为什么 y 的值不是 7dd,而是 FFFF

谁能帮忙?预先感谢

0 投票
2 回答
5813 浏览

assembly - 汇编x86中的访问冲突写入位置

嗨,我有一个关于装配 x86 的问题

这是我的代码

我正在调试这段代码,一切似乎都相应地工作,直到我到达退出指令,然后 Visual Studio 给了我这个错误“访问冲突写入位置 0x000009DF”,我有点困惑,它在代码末尾给了我这个错误,为什么退出命令会出现访问冲突

这是我的输入

在程序结束时,我得到寄存器 al = 1 的值,这就是我想要的,所以我不知道为什么当代码中没有其他错误时它给了我这个错误有人可以帮忙吗?预先感谢

0 投票
1 回答
1149 浏览

assembly - 带有 ascii 索引和十进制值的频率表

我编写代码来计算字符串中每个字符的频率,数组的索引是从 0 到 255,它们是 ascii 索引,值是字符出现的频率。

我比较字符串中的每个字符,每次在数组中添加 1。

但是我找不到计数似乎不对(太大)的错误?

结果应该是在此处输入图像描述

但我的结果计数太大。

错误出现在 L1 循环中,我不知道为什么循环会导致非常大的数字。

请给我一些指导,我做错了什么。

感谢您的阅读。

0 投票
1 回答
2511 浏览

assembly - 无法在汇编语言中将 Bin 转换为 Dec/Hex

在从二进制转换为十进制和十六进制值时,此代码有一些错误。该程序向用户显示此菜单:

按您要采取的行动对应的数字:

  1. 如果您想将十进制转换为二进制和十六进制。
  2. 如果您想将二进制数转换为十进制和十六进制。
  3. 如果您想将十六进制数转换为十进制和二进制。
  4. 如果您想退出应用程序。

该程序运行,除了选择 2。波纹管我想出什么,任何想法都会受到赞赏。

0 投票
1 回答
861 浏览

sorting - 为什么我的选择排序代码不起作用?

我正在学习组装。我需要使用选择排序来对整数列表进行排序。我在交换函数上花了几个小时,但我无法弄清楚为什么我的程序在以下步骤停止编译:mov [eax]、edx & mov [ebx]、ecx。问题在于排序功能和交换功能。有人可以看看并给我一些指导。非常感谢!

(更新:我的代码现在编译 - 问题已解决)

0 投票
2 回答
3428 浏览

assembly - 与 Irvine 组装的 RandomRange

我正在研究 x86 汇编语言。我想得到两个参数,一个是列,另一个是行,使用区间 [0,5] 内的随机范围。在这里,我尝试通过将随机数除以 6 来调整间隔,并将数字保留在 DL 中,这是除法的余数。

我还实现了一个数组,它保存之前随机化的数字,如果元素已经为 1,则跳回随机化,它使用 row*6+col 来检查索引,但是这个数组还没有生效。

我遇到分段错误,可能是什么问题?

0 投票
1 回答
1237 浏览

assembly - 组装随机范围总是相同的输出

Irvine 程序总是给出相同的输出。

每次执行程序时获取随机数的更好方法是什么?

0 投票
1 回答
3896 浏览

loops - 汇编 x86 中的打印输出

我有这个代码:

当我尝试打印输出时,我得到了这个

输入第一个十六进制数:ff

输入第二个十六进制数:ff

1FEer 第一个十六进制数:按任意键继续。. .

可以看到,prompt1 的一部分,er first hex number卡住了 sum 的值1FE,为什么会这样

程序循环edx寄存器3次第一次值是E,第二次是F,第三次是1,然后写入writeString打印输出,这似乎是程序应该做的,此时edx值突然跳到00405911,为什么会这样?

提前感谢您的帮助