问题标签 [emu8086]
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 - 组装 8086;浮点数,加,减
我需要一些资源来了解更多关于浮点数的信息,我需要在emu8086环境中为这类数字编写加法和减法运算......
任何帮助深表感谢
assembly - 更改 8086 / 88 的 IVT
如您所知,中断发生时,8086获取中断的代码类型并将其乘以4,然后在IVT中检查。
知道我想在 8086 中更改 IVT,我正在使用 emu8086。
我该怎么做?
assembly - 将变量与字符串一起打印?
我有这样的变量:
我需要在屏幕上打印的字符串中间嵌入“A”和“B”。像这样的东西:
我想我在某个地方看到过类似的东西。如何才能做到这一点?
assembly - 如果数字大于 32,767,则打印到 LED 端口 199
因此,我创建了一个程序来测量步进电机转动的角度。我们必须将度数测量到最接近的 10 度(即,如果电机转了 141.75 度,我们必须打印出 14175,因为 LED 没有小数点)。
好吧,我遇到了一个障碍,当我尝试打印任何大于 327.67 的度数时,LED 会显示一个负数,因为微处理器会自动表示有符号数。例如,348.75 应该在 LED 显示屏上打印为 34875,但它使用表示 34875 的二进制值的二进制补码负数,即 -31786。有人知道如何在这个 LED 显示屏上显示 36000 吗?
我的代码的逻辑如下:
- 每向右移动一次,SI 就会增加
- 每向左移动一次,DI 就会增加
为了找到度数,我移动比较它们以查看它们是否不在开始第二个我从另一个中减去一个,这取决于哪个更大。如果 DI 较大,则向左(或顺时针)移动,然后添加 58 以跳转到与需要打印的度数相对应的值。
assembly - 错误“移动错误的参数”
我开始学习汇编(ASM x86)。我正在使用模拟器emu8086。我写了以下指令:
当我试图模拟指令时,emu8086 写道:wrong parameters MOV eax,3. probably it's an undefined var: eax
此外,当我替换eax
为ax
,ah
或al
- 它工作得很好。
为什么会这样?我应该怎么做才能解决这个问题?谢谢。
assembly - 跳过了未知的操作码:66,不是 8086 指令 - 尚不支持
我正在使用emu8086。我有一个问题要求我在从其六进制输入转换后显示我们在七段显示器上看到的内容。我应该以六进制输入我的数据,如果它与七段表的六进制输入匹配,它会显示十进制数,例如。3FH = 0, 06H = 1。我正在使用数组来实现这个程序。下面是工作源程序:
我有这个程序工作。但是我尝试了一些方法,将数组切换MSG DB 3FH...
到 afterORG 100H
和 before的位置MOV AL,[1840H]
,运行程序会给出错误消息
“跳过了未知的操作码:66,不是 8086 指令 - 尚不支持”。
我找不到原因。
任何人都会知道这是什么原因,如果我要将数组保持在 and 之间ORG 100H
,我可以修复任何东西以使我的程序正常工作MOV AL,[1840H]
吗?
assembly - 在程序集中使用鼠标在屏幕上绘图(emu8086)
下面的代码让您可以用鼠标在屏幕上绘图,并且效果很好。我的问题是为什么CX
需要除以2?为什么一开始就翻倍?
assembly - 是否有其他指令类似于 MOVZX,但在 8086 上受支持?
我试图找到将替换的指令MOVZX
,因为我使用的是 EMU8086(它模拟不支持的 8086 MOVZX
)。
我找到的最接近的指令是CBW
,它将值放入寄存器AX
,但它仅用于有符号值。我需要一些适用于无符号值的东西。
我有哪些选择?是否可以用一条指令来完成?
assembly - 在汇编中在屏幕上打印内存值
我写了一个汇编代码来总结五个数字。然后将最终值存储在内存中。
我遵循了基于this topic的示例,但是它在emu8086中不起作用