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

assembly - 如何在汇编中的div后显示11.1?

11.1之后怎么显示div?例如 32/5=6.4,我只能显示 6 那么如何显示 6.4?

0 投票
2 回答
2684 浏览

arrays - 数组作为 8086 汇编中函数的参数

我想将字节数组(或指向该数组的指针)传递给 8086 程序集中的函数。

当我尝试指向PUSH该指针时,它给了我一个编译错误。错误是“错误的参数”。

0 投票
2 回答
4943 浏览

x86 - NASM 中断 x86 参考?

对于 Linux 系统上的 NASM x86 中断,我似乎找不到很好的参考。例如,它是什么int 0x60以及它有什么不同int 0x80

是否有手册可以列出可与int指令结合使用的所有中断号?

0 投票
2 回答
29468 浏览

assembly - DATA SEGMENT 下的代码什么时候会在这段代码中执行?

我是汇编编程的初学者......我在谷歌上冲浪了很多。资料很多,但还是看不懂下面的代码。如果有人可以解释,我将不胜感激

移动轴,数据

我也不明白数据段中的代码何时会在这个程序中执行。

另外,有人可以向我解释以下说明的作用吗?...

MOV AH , ??H ( ?? can be filled with 09,4c etc).

MOV DS,AX

MOV ES,AX

0 投票
3 回答
43157 浏览

assembly - MOV AX、CS 和 MOV DS、AX 的概念

有人可以解释这三个指令的功能吗?

我知道理论上的代码、数据和额外段是什么,但是:

  1. 它们是如何在这个程序中实现的?

  2. 为什么整个段移动到另一个段?(MOV AX,CSMOV DS,AX)

这两条指令实际上是做什么的?

我可以理解这段代码中所有其他指令的含义,除了突出显示的 3 条指令。

(程序运行良好。它接受输入直到 0 被击中——有 amov ah,01h和 an int 21h,然后它比较al'0'如果al'0',它跳到last,否则它跳到back。)

(编者注:.com程序在 offset 加载100h,所有段寄存器设置为彼此相等。 org 1000h可能是错字,org 100h因为这看起来像一个.com程序。这个程序不会中断,因为它不使用任何绝对地址,只使用相对地址跳跃。)

0 投票
5 回答
13676 浏览

assembly - 组装8086程序

我是汇编语言的新手,这是一些我不明白的代码,希望有人能帮忙。

这个程序应该(6)1,2,3,4,5,6,7,8,9

我了解它一般是如何工作的,但我有几个问题:

  1. 为什么我们使用CLCSTC??我知道他们把CF零和一,但我们为什么要使用它?
  2. 为什么我们在标签MOV AH,4CH后使用in EXIT??
  3. 在开始标签之后为什么我们要说以下内容:

    MOV AX,DATA
    MOV DX,AX

我们为什么不直接MOV DX,DATA

最后,有人可以推荐一本学习汇编的好书吗?

0 投票
3 回答
782 浏览

assembly - 计算 c = ((22-7)/5)*113 的汇编 8086 程序

嗨,我真的不知道这是如何工作的

我真的不知道这个程序发生了什么,所以任何帮助将不胜感激

0 投票
2 回答
4270 浏览

assembly - 32 位二进制到 ASCII 8086 汇编

我需要将 32 位数字转换为 ASCII。我不知道我该怎么做......

这是我写的代码:可以转换的最大数字是 0001FFFF,如果我将 Dx 设置为000F并将 Ax 设置为FFFF,汇编器会给我一个除法溢出错误!

我应该怎么办?

提前致谢

0 投票
2 回答
3572 浏览

linux - DOS 上的 NASM(Intel 8086):无效的有效地址

我正在使用 Bochs 为 DOS 编写代码。我正在使用NASM
编译程序 假设我有以下代码:

为什么nasm在线抱怨:

无效的有效地址?

如果不使用bx我使用si注册表,则程序会按预期编译作品,将t的ascii 值加载到al中。

为什么?

编辑:发现我不能使用 BX 进行索引。
如果我想加载数据段的确定部分中指向的内容,您可以执行以下操作:

如果我想保持si指向字符串的开头,我可以使用 BX 作为偏移量:

甚至

但据我了解,bx 也可以使用,所以问题仍然存在。

0 投票
1 回答
2383 浏览

assembly - 如何让鼠标在我自己的操作系统中工作?INT 33h 在 EMU8086 之外不起作用

我已经完全在汇编中开发了自己的操作系统,现在我想实现一个鼠标驱动程序,因为我看到带有 EMU8086 的 Windows 中的 INT 33h 可以工作,但是当我从软盘启动时它不起作用。我尝试过 USB 和 PS/2 鼠标,结果相同。谁能解释我必须做什么才能使操作系统识别鼠标?