我很困惑为什么我们应该初始化DS寄存器:
data segment
msg1 db 10,13, "saisir le premier digit:$"
data ends
mov ax,data
mov ds,ax`
当存储第一个变量时,它存储在数据段上 所以还没有ds =数据 为什么我们应该初始化ds = data,如果它们已经相同
答案 0 :(得分:1)
当存储第一个变量时,它存储在数据段
我认为存在误解。您需要区分编译时和运行时。
您的编译器(汇编程序)将 msg1 文本放在程序的数据部分中。我们实际上并没有将此称为存储变量,而且还没有涉及DS
段寄存器的特定设置。
但是在运行时,当您想要检索或存储这些变量时,DS
段寄存器需要指向数据部分。由于在程序启动时并非如此,因此您可以明确地执行此操作。
1 data segment
2 msg1 db 10,13, "saisir le premier digit:$"
3 data ends
4 mov ax,data
5 mov ds,ax
请注意,执行不是从这段代码的第一行开始,而是从第4行开始!这是另一种方法,可以看到数据段上没有任何先前的商店。