问题标签 [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 投票
2 回答
310 浏览

assembly - 行为异常的变量(英特尔 8086)

编辑:回答了我自己的问题。见下文。-_-

我在 .data 段中定义了一个变量,如下所示:

这是我为获得返回值而添加或减去的值。

它第一次出现在代码段中是在以下点:

我用过调试器,可以确认在这个操作的时候,ax寄存器是:0000h。

但是,如果我在它之前添加以下代码行:

我得到一个完全不同的值(也是错误的)。我很困惑。我在这里从根本上滥用变量吗?我不明白为什么加载变量最初初始化的相同值(并且尚未修改)会改变结果。

有任何想法吗?如果做不到这一点,有人可以提醒我如何通过 CodeView 跟踪变量的值吗?(我正在使用的 DOSBox 调试器)

0 投票
2 回答
3373 浏览

pointers - Intel 8086 汇编中的指针和索引

我有一个指向数组的指针,DI。

是否可以转到 DI 和另一个指针指向的值?

例如:

而且,在相关的说明中,是否有单行操作码来交换两个寄存器的值?(就我而言,BX 和 BP?)

0 投票
1 回答
5303 浏览

assembly - 硬件中断列表

是否有任何硬件中断列表?我正在编写一个 16 位应用程序,我想检查一些 INT,但是我在 google 中找不到任何有用的东西,可以提供一些关于它的文档吗?如果可能,请提供详细信息。

对不起,如果它不是一个有效的请求,但它是我认为唯一适合这个问题的地方

提前致谢

0 投票
3 回答
2147 浏览

assembly - 8086微处理器的堆栈溢出

当堆栈已满时,8086 微处理器的行为会是什么,即使我将一些东西压入其中?

0 投票
3 回答
620 浏览

assembly - Microchip 用于 8086 汇编的 MPLAB IDE

我一直想学习 8086 汇编,但是(现在)对从哪里开始有点困惑。我们现在在学校学习PIC16F690,我很擅长。所以我想我可以试试8086。我想知道是否有像 MPLAB IDE 这样的 8086 IDE,您可以在其中编写代码并逐行执行指令并查看内存、寄存器和其他内容?

0 投票
6 回答
20363 浏览

c++ - 什么是近、远和巨大的指针?

谁能用一个合适的例子向我解释这些指针......以及何时使用这些指针?

0 投票
3 回答
3774 浏览

windows - 64 位 Windows 上的 16 位程序集?

不久前我决定开始学习汇编,所以我从 16 位汇编开始,使用 FASMW。然而,我最近得到了一台运行 Windows 7 64 位的真正新计算机,现在程序组装的已编译 .COM 文件不再工作了。他们给出一条错误消息,指出 .COM 与 64 位 Windows 不兼容。32 位程序集仍然可以工作,但我宁愿从 16 开始,然后逐步提高... 是否可以在 Windows 7 上运行 16 位程序?还是有特定的方法来编译它们?还是我应该放弃并跳到 32 位?

0 投票
9 回答
4752 浏览

assembly - 实模式 BIOS 例程和保护模式

我正在做一些操作系统实验。到目前为止,我所有的代码都使用实模式 BIOS 中断来操作硬盘和软盘。但是一旦我的代码启用了 CPU 的保护模式,所有实模式 BIOS 中断服务例程都将不可用。怎么可能IR/W硬盘和软盘?我现在需要做一些硬件驱动程序吗?我该如何开始?这是操作系统如此难以开发的原因之一吗?

我知道硬件都是通过读取和写入某些控制或数据寄存器来控制的。例如,我知道硬盘的命令块寄存器范围从 0x1F0 到 0x1F7。但是我想知道这么多不同硬件的寄存器地址在PC平台上是否相同?还是我必须在使用它们之前检测到这一点?如何检测它们?

由于我不确定如何在保护模式下读/写软盘或硬盘,所以我现在必须使用 BIOS 中断将所有必要的内核文件从软盘加载到内存中。但是,如果我的内核文件超过了实模式 1M 空间限制,我该怎么办?

对于任何回应,我深表感谢。

更新

我依稀记得有一种方法可以先切换保护模式,然后再切换回实模式。然后我们可以在保护模式下使用 BIOS 例程。也许我记错了。有人记得对吗?

0 投票
5 回答
5259 浏览

microcontroller - 在微控制器中将数据从内存移动到内存

为什么我们不能直接将数据从一个内存位置移动到另一个内存位置。

如果我问的是一个愚蠢的问题,请原谅我,但我认为这是一个真实的情况,至少对于我遇到的情况(8085,8086 n 80386)

我并不是真的在寻找移动数据的解决方案(例如,使用 movs n all),但实际上是这种异常的原因。

0 投票
2 回答
7420 浏览

assembly - A2004 MASM32 问题

我的 MASM32 汇编器有问题

以下代码是我从 MASM32 教程中复制的 Hello World 示例:

在尝试组装时,MASM32 抛出 A2004 错误并带有以下注释:

任何人都可以帮助我吗?这段代码在 TASM 汇编器上运行得非常好,但现在我必须使用 MASM32,而且对于我之前证明可以与 TASM 一起使用的任何汇编代码,我都遇到了这个 A2004 错误。

如果这是相关的,我有一个运行 Win7 操作系统的 32 位 CPU。

谢谢。