【发布时间】:2020-05-23 07:48:34
【问题描述】:
据我所知,如果我们使用带有 8 位数字的 div 指令,那么商就是存储在 AL 中的 8 位数字,余数还是存储在 AH 中的 8 位数字
但是如果我们将一个 16 位数除以 1 会怎样?
每当执行以下代码时,我的指令指针都会放错位置。
MOV AX, 9999H
MOV BL, 1
DIV BL
有什么方法可以强制 8086 用 ax 做商,除以 AX 做余数?
【问题讨论】:
-
@SepRoland:不能同时是 TASM 和 EMU8086。将
[x86-16]用于 16 位代码,包括 8086。问题文本可以处理少数情况,即 8086 与 286 答案之间存在很大差异。 ([8086]是 [x86-16] 的标签同义词,这很好,尽管标签自动完成 8086 到 emu8086)。 emu8086 是一种特定的汇编器 + 模拟器 + 调试器,对于 ISA 的问题并不是很好。 -
@PeterCordes 我不知道这一点。无论如何,至少有 12 个问题同时标记了 TASM 和 EMU8086。
-
@SepRoland:如果是关于 asm 语法,那么 TASM 和 emu8086 确实使用类似 MASM 的语法,因此它们可能不需要重新标记。也许不值得为现有的老问题烦恼。
标签: assembly x86-16 tasm integer-division