使用 Tasm 定义汇编代码段

Defining segments of assembly code with Tasm

所以我被教导了如何使用 Tasm(Turbo 汇编程序 16 位)编程的基础知识,并且向我解释了这两行,但现在我不记得为什么它们是这样的:

start: mov ax, data
       mov ds, ax

为什么不能使用:

start: mov ds, data

我已在 Google 和本网站上查找过,但找不到答案。另外,如果有错误,请纠正我的英语。谢谢。

你不能这样做的原因不是 TASM 的限制,而是指令集的 "feature"。 Intel/AMD 指令集不支持将立即值移入 DS 寄存器。

在基于 CISC 的计算机中,存在各种限制和限制并不罕见。因此,将 instruction reference 放在手边非常有用。 :)