问题标签 [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.
performance - 在原始 8086 上将寄存器设置为 1 或 (-1) 的最有效方法
我现在正在学习组装课程,检查我们家庭作业的人是一个非常迂腐的老派优化怪胎。例如,如果他看到以下内容,他会扣除 10%:
代替:
即使它只用过一次。
我不是汇编编程的完整初学者,但我不是优化专家,所以我需要你的帮助(可能是一个非常愚蠢的问题,但我还是会问):如果我需要将寄存器值设置为 1或(-1)更好地使用:
或执行以下操作:
我真的需要一个好成绩,所以我试图让它尽可能优化。(我需要优化时间和代码大小)
assembly - 当中断发生时,x86 架构中会发生什么?
我正在研究 x86 和实时系统,我有一个问题,那就是:
x86 遵循哪些步骤来处理任何中断?
memory - 如何将 8086 的内存空间扩展到 1 GB?
如何将 8086 的内存空间扩展到 1 GB ???
.net - 你能帮我处理 Delphi .net 的 8086 项目吗?
很难找到一个汇编程序员来帮助我
我是一个成熟的 Delphi 程序员,有一个不是 .net 的旧 Delphi 副本而且我有一个 *.dll,我正在将其转换为 .net 的 Delphi 代码.net 的呢。我今天刚买了一台 .net 的电脑!!!!!!
我已经通过一个反汇编程序运行了 *.dll 并开始将跳转链接作为在 Delphi 程序集中编写,您无需进行任何寻址,只需引用链接。
该文件具有固定的字符串结构(我认为是 C++)ASCII 和 ANSI 字符串 1/我不知道如何识别代码如何引用这些结构
2/ 我不知道函数是开始的,它们看起来像什么形状
该代码是免费的,任何人都可以查看它们的功能并不多。但我必须通过电子邮件发送它,因为堆栈溢出不允许我显示它。
你能给我技术吗,或者你能把我介绍给你可能认识的朋友给我技术吗?
assembly - 在 Assembler (Intel 8086) 中计算 ABSOLUTE ADDRESS / Registry 值
我知道下一条指令的绝对地址位于 50000(十六进制),并且我知道应该在 IP 寄存器中的十六进制值是 4000(十六进制)。我的问题是......为什么它会这样工作?
如果需要,我还有其他可用的注册表值。
任何的想法?
x86 - 8086/8088 中的指令指针溢出标志
大家好,我是 8086 架构的新手,在 Google 上找不到与以下相关的内容:
在 i8086 或 i8088(即 16 位,分段寻址)上,如果指令指针(程序计数器)位于 0xFFFF 时发生取指会发生什么?我假设 CPU 增加 IP 并且它溢出并变为 0x0,而 CS 寄存器保持不变。
但是,如果发生这种情况,是否会设置任何标志(例如标志寄存器的溢出位?)
谢谢,
assembly - 16位实模式下的物理地址公式:为什么将段乘以16?
physical address=16*selector+offset
但我不知道为什么选择器乘以 16?
file - 8086 用于从文件读取/写入二进制文件的程序集中断?
我需要一次读取大约 1KB 左右的数据,对其进行操作,然后将其写入另一个文件。我需要这样做至少 100 MB。我以前从未在汇编中做过任何文件 IO。
我需要调用哪些中断以及哪些寄存器需要包含哪些中断?
assembly - 8086 汇编中的大二进制移位?
我有一个 512 字节长的二进制数据块,我想知道如果我想将它向右移动一次,最有效的方法是什么。
我现在最好的猜测(对组装来说非常新)是我必须首先检查一个块(可能是 int),看看它会移出什么,移出,然后携带之前的 int 会移出的任何内容并继续携带这下移了数据。有没有更简单的方法?如果我必须使用这种进位技术,我可以移动的最大块是多少?双字?QWord?
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?