问题标签 [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.
assembly - 如何在汇编中的div后显示11.1?
11.1之后怎么显示div
?例如 32/5=6.4,我只能显示 6 那么如何显示 6.4?
arrays - 数组作为 8086 汇编中函数的参数
我想将字节数组(或指向该数组的指针)传递给 8086 程序集中的函数。
当我尝试指向PUSH
该指针时,它给了我一个编译错误。错误是“错误的参数”。
x86 - NASM 中断 x86 参考?
对于 Linux 系统上的 NASM x86 中断,我似乎找不到很好的参考。例如,它是什么int 0x60
以及它有什么不同int 0x80
?
是否有手册可以列出可与int指令结合使用的所有中断号?
assembly - DATA SEGMENT 下的代码什么时候会在这段代码中执行?
我是汇编编程的初学者......我在谷歌上冲浪了很多。资料很多,但还是看不懂下面的代码。如果有人可以解释,我将不胜感激
移动轴,数据
我也不明白数据段中的代码何时会在这个程序中执行。
另外,有人可以向我解释以下说明的作用吗?...
MOV AH , ??H ( ?? can be filled with 09,4c etc).
MOV DS,AX
MOV ES,AX
assembly - MOV AX、CS 和 MOV DS、AX 的概念
有人可以解释这三个指令的功能吗?
我知道理论上的代码、数据和额外段是什么,但是:
它们是如何在这个程序中实现的?
为什么整个段移动到另一个段?(
MOV AX,CS
和MOV DS,AX
)
这两条指令实际上是做什么的?
我可以理解这段代码中所有其他指令的含义,除了突出显示的 3 条指令。
(程序运行良好。它接受输入直到 0 被击中——有 amov ah,01h
和 an int 21h
,然后它比较al
,'0'
如果al
是'0'
,它跳到last
,否则它跳到back
。)
(编者注:.com
程序在 offset 加载100h
,所有段寄存器设置为彼此相等。 org 1000h
可能是错字,org 100h
因为这看起来像一个.com
程序。这个程序不会中断,因为它不使用任何绝对地址,只使用相对地址跳跃。)
assembly - 组装8086程序
我是汇编语言的新手,这是一些我不明白的代码,希望有人能帮忙。
这个程序应该(6)
在1,2,3,4,5,6,7,8,9
我了解它一般是如何工作的,但我有几个问题:
- 为什么我们使用
CLC
和STC
??我知道他们把CF
零和一,但我们为什么要使用它? - 为什么我们在标签
MOV AH,4CH
后使用inEXIT
?? 在开始标签之后为什么我们要说以下内容:
MOV AX,DATA
MOV DX,AX
我们为什么不直接说:
MOV DX,DATA
最后,有人可以推荐一本学习汇编的好书吗?
assembly - 计算 c = ((22-7)/5)*113 的汇编 8086 程序
嗨,我真的不知道这是如何工作的
我真的不知道这个程序发生了什么,所以任何帮助将不胜感激
assembly - 32 位二进制到 ASCII 8086 汇编
我需要将 32 位数字转换为 ASCII。我不知道我该怎么做......
这是我写的代码:可以转换的最大数字是 0001FFFF,如果我将 Dx 设置为000F并将 Ax 设置为FFFF,汇编器会给我一个除法溢出错误!
我应该怎么办?
提前致谢
linux - DOS 上的 NASM(Intel 8086):无效的有效地址
我正在使用 Bochs 为 DOS 编写代码。我正在使用NASM
编译程序
假设我有以下代码:
为什么nasm在线抱怨:
无效的有效地址?
如果不使用bx我使用si注册表,则程序会按预期编译作品,将t的ascii 值加载到al中。
为什么?
编辑:发现我不能使用 BX 进行索引。
如果我想加载数据段的确定部分中指向的内容,您可以执行以下操作:
如果我想保持si指向字符串的开头,我可以使用 BX 作为偏移量:
甚至
但据我了解,bx 也可以使用,所以问题仍然存在。
assembly - 如何让鼠标在我自己的操作系统中工作?INT 33h 在 EMU8086 之外不起作用
我已经完全在汇编中开发了自己的操作系统,现在我想实现一个鼠标驱动程序,因为我看到带有 EMU8086 的 Windows 中的 INT 33h 可以工作,但是当我从软盘启动时它不起作用。我尝试过 USB 和 PS/2 鼠标,结果相同。谁能解释我必须做什么才能使操作系统识别鼠标?