问题标签 [x86-16]

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 投票
4 回答
14533 浏览

performance - 在原始 8086 上将寄存器设置为 1 或 (-1) 的最有效方法

我现在正在学习组装课程,检查我们家庭作业的人是一个非常迂腐的老派优化怪胎。例如,如果他看到以下内容,他会扣除 1​​0%:

代替:

即使它只用过一次。

我不是汇编编程的完整初学者,但我不是优化专家,所以我需要你的帮助(可能是一个非常愚蠢的问题,但我还是会问):如果我需要将寄存器值设置为 1或(-1)更好地使用:

或执行以下操作:

我真的需要一个好成绩,所以我试图让它尽可能优化。(我需要优化时间和代码大小)

0 投票
2 回答
2900 浏览

assembly - 当中断发生时,x86 架构中会发生什么?

我正在研究 x86 和实时系统,我有一个问题,那就是:

x86 遵循哪些步骤来处理任何中断?

0 投票
3 回答
1238 浏览

memory - 如何将 8086 的内存空间扩展到 1 GB?

如何将 8086 的内存空间扩展到 1 GB ???

0 投票
2 回答
349 浏览

.net - 你能帮我处理 Delphi .net 的 8086 项目吗?

很难找到一个汇编程序员来帮助我

我是一个成熟的 Delphi 程序员,有一个不是 .net 的旧 Delphi 副本而且我有一个 *.dll,我正在将其转换为 .net 的 Delphi 代码.net 的呢。我今天刚买了一台 .net 的电脑!!!!!!

我已经通过一个反汇编程序运行了 *.dll 并开始将跳转链接作为在 Delphi 程序集中编写,您无需进行任何寻址,只需引用链接。

该文件具有固定的字符串结构(我认为是 C++)ASCII 和 ANSI 字符串 1/我不知道如何识别代码如何引用这些结构

2/ 我不知道函数是开始的,它们看起来像什么形状

该代码是免费的,任何人都可以查看它们的功能并不多。但我必须通过电子邮件发送它,因为堆栈溢出不允许我显示它。

你能给我技术吗,或者你能把我介绍给你可能认识的朋友给我技术吗?

0 投票
1 回答
3595 浏览

assembly - 在 Assembler (Intel 8086) 中计算 ABSOLUTE ADDRESS / Registry 值

我知道下一条指令的绝对地址位于 50000(十六进制),并且我知道应该在 IP 寄存器中的十六进制值是 4000(十六进制)。我的问题是......为什么它会这样工作?

如果需要,我还有其他可用的注册表值。

任何的想法?

0 投票
2 回答
881 浏览

x86 - 8086/8088 中的指令指针溢出标志

大家好,我是 8086 架构的新手,在 Google 上找不到与以下相关的内容:

在 i8086 或 i8088(即 16 位,分段寻址)上,如果指令指针(程序计数器)位于 0xFFFF 时发生取指会发生什么?我假设 CPU 增加 IP 并且它溢出并变为 0x0,而 CS 寄存器保持不变。

但是,如果发生这种情况,是否会设置任何标志(例如标志寄存器的溢出位?)

谢谢,

0 投票
4 回答
1363 浏览

assembly - 16位实模式下的物理地址公式:为什么将段乘以16?

physical address=16*selector+offset
但我不知道为什么选择器乘以 16?

0 投票
1 回答
1412 浏览

file - 8086 用于从文件读取/写入二进制文件的程序集中断?

我需要一次读取大约 1KB 左右的数据,对其进行操作,然后将其写入另一个文件。我需要这样做至少 100 MB。我以前从未在汇编中做过任何文件 IO。

我需要调用哪些中断以及哪些寄存器需要包含哪些中断?

0 投票
3 回答
727 浏览

assembly - 8086 汇编中的大二进制移位?

我有一个 512 字节长的二进制数据块,我想知道如果我想将它向右移动一次,最有效的方法是什么。

我现在最好的猜测(对组装来说非常新)是我必须首先检查一个块(可能是 int),看看它会移出什么,移出,然后携带之前的 int 会移出的任何内容并继续携带这下移了数据。有没有更简单的方法?如果我必须使用这种进位技术,我可以移动的最大块是多少?双字?QWord?

0 投票
2 回答
892 浏览

assembly - Intel 8086 Assembly -- Squaring a Register

In principle, squaring the value of a register isn't hard:

But I got to thinking -- the course that I'm learning Assembly for prizes efficiency very highly; a difference of even a single line less could be worth up to 5 points.

I realize this is micro-optimization, but would the following code perform the the same way?:

I suppose a much simpler way of expressing my question: is AX (or AL/AH) a valid parameter for the mul and imul commands in 8086 assembly?