Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
如何手动更改 8086 的标志(在汇编代码中)?
有没有办法手动更改每个标志 或者您是否必须使用一个您知道会改变它们的结果的命令 基本上我正在使用命令RCL 而且我不想一开始就得到1 所以我想改变CF到 0 我知道我可以使用如下命令 mov al 0 shl al 1 但我想知道是否有其他
Assembly
x86
x8616
flags
如何设置定时器
有什么办法可以将计时器设置为 60 秒xor ah ah Enter Again xor ah ah I should put 60 seconds here int 16h The user should press S before 6
Assembly
x86
DOS
x8616
BIOS
汇编指令“Intel 组”类别源自何处?
在开发 86 DOS 应用程序的分支期间 lDebug https pushbx org ecm web projects ldebug 我遇到了称为 英特尔组 的指令类别 具体来说 组是指与使用相同 1 或 2 个操作码字节的一组指令相关
Assembly
x86
intel
x8616
machinecode
如何区分 8086/8088 和 80186?
我正在尝试编写一个程序来检查使用什么处理器来执行我的程序 由于它旨在用于许多历史上的 PC 克隆 因此我希望能够区分 8086 和 80186 以防万一该计算机是配备 80186 的罕见机器之一 我该怎么做在装配中 None
Assembly
x8616
80186
有没有办法在基于 DOS 的程序中读取键盘修改键,例如 ALT 或 CTRL?
我确实知道您可能会轮询键盘缓冲区以获取修饰键 例如 ALT 或 CTRL 但即使在旧的 DOS 程序中 当我按下这些键时也会执行一个操作 例如 通过按 ALT 来更改菜单按钮的颜色 在DOS下有没有办法获得这些密钥 这是如何做到的 我认为在
Keyboard
DOS
x8616
Basic
turbobasic
如何将 ASM 程序包含到我的 Turbo Basic 程序中?
我找到了这个 ASM 例程来按下按键 用于按下按键的 ASM 例程 http www fysnet net kbuffio htm现在我想将其包含到 Turbo Basic 例程中 但不知道如何执行此操作 这里有人能告诉我这是怎么做的吗 谢
Assembly
Keyboard
DOS
x8616
turbobasic
有没有针对8086的C编译器? [关闭]
Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 8086 CPU 模拟器 它仅模拟 8086 指令 我现在正在寻找一个 C 编译器来定位这个
c
compilerconstruction
x86
x8616
加载引导加载程序的第二阶段和/或将控制权转移给它时出现问题
我的主引导记录代码 bit16 16bit by default org 0x7c00 jmp short start nop bsOEM db OS423 v 0 1 OEM String start cls mov ah 06h Fun
Linux
Assembly
x8616
BootLoader
BIOS
写入没有段寄存器的地址
我知道这段代码实际上会将数据写入 ds 100h mov 100h ax 但我怎样才能写入线性地址100H直接不使用任何段寄存器作为段基址 没有办法绕过段寄存器 每个内存访问都与某个段寄存器相关 如果要写入绝对地址 请首先向段寄存器加载适当
Assembly
x86
nasm
x8616
realmode
8086中的堆栈段和堆栈指针
我对堆栈段 ss 和堆栈指针 sp 寄存器有点困惑 当堆栈为空时 sp值等于ss值吗 我读到 当我们将一个字 2字节 推入堆栈时 sp会减2 如果第一个语句为真 sp ss 那么我可以说 如果堆栈不为空 堆栈指针的值总是较小或等于堆栈段的值
Assembly
stack
x8616
Segment
8086中的物理地址是如何产生的?
In the 8086架构中 内存空间大小为 1 MiB 并分为每个最大 64 KiB 的逻辑段 即它有20地址线因此使用以下方法 数据段寄存器左移4位然后添加到偏移寄存器 我的问题是 尽管所有寄存器都只有 16 位 但我们如何进行移位操作
x8616
memoryaddress
microprocessors
使用 SAR 与 SHR 进行汇编时将二进制数右移
我们知道 当我们将一个二进制数右移时 它会被2除 对于号码 1001 0001 我们假设存储在AX登记 如果我们将其视为无符号数 等于145十进制 SHR AX 1将使AX等于0100 1000这等于72十进制 这是正确的 但如果我们将其视
Assembly
x86
x8616
bitshift
x86除法异常-返回地址
当尝试在 x86 程序集中为引导加载程序编写一些例程时 我遇到了一个错误 当发生除法错误时 程序将陷入无限循环 通过调查 我发现调用 int 0 会正常通过异常处理程序 然后继续执行程序的其余部分 我自己为 x86 编写了异常处理程序 发生
Assembly
x86
VirtualBox
x8616
interrupthandling
汇编程序不打印读取的字符串
我编写了以下代码 允许用户输入一个数字并将其打印回来 model tiny stack 100 data userMsg db 13 10 Please enter a number dispMsg db 13 10 You have en
Assembly
DOS
x8616
如何在 x86 程序集中正确索引数组
我试图确保我理解 SI 和 DI 寄存器 我的汇编语言背景在某种程度上仅限于 6502 所以请耐心等待 我有一个简单的例子来说明如何使用 SI 作为简单的计数器 我有点担心我可能会滥用这个寄存器 mov si 0 set si to 0 m
Arrays
Assembly
x86
x8616
如何在8086汇编中生成随机数? [复制]
这个问题在这里已经有答案了 我想知道是否有使用汇编生成随机数的例程或指令 在 8086 上 任何帮助将不胜感激 最常见的方法是使用时间戳 在 32 位模式下可以通过以下方式完成rdtsc指令 在16位模式下 使用BIOS中断1A的功能0 因
Assembly
x8616
microprocessors
十六进制数在计算机科学中的重要性[关闭]
Closed 这个问题需要多问focused 目前不接受答案 在研究 8085 8086 和一般微处理器编程时 我们总是使用十六进制表示 二进制数在计算机中很重要 这没关系 但这些十六进制数字有多重要呢 有什么历史意义吗 如果有人也指出一些
Assembly
MASM
x8616
Hex
8085
内存中的变量未通过存储更新为该符号
当我运行 emu8086 时 这个结果 和 返回给我 0 为什么 data segment ans dw ends stack segment dw 128 dup 0 ends code segment start mov ax data
Assembly
x8616
emu8086
memorysegmentation
80x86 中 SHL 和 SAL 的区别
我已经学会了如何使用 80x86 汇编器 因此在按位移位操作中 我遇到了 SAL 和 SHL 使用的问题 我的意思是代码行之间的区别如下 MOV X 0AAH SAL X 4 MOV X 0AAH SHL X 4 什么时候应该使用SHL 什
Assembly
x8616
bitshift
为什么需要“string DB 20, 22 dup('?')”中的“20, 22”?
我一直用 for 定义字符串DB 20 22有一段时间不知道为什么 我读到第一个字节是缓冲区大小 第二个字节保存字符串使用的字节数 但我不知道这两个值是否都是强制性的 例如 当我定义一个字符串并想要将寄存器指向它时 我必须使用 2 来跳过这
Assembly
x8616
«
1
2
3
4
5
6
»