TITLE EXAMPLE PROGRAM
DATA SEGMENT
VARX DW 15H
VARY DW 10H
VARZ DW ?
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,ES:DATA,SS:STACK1
START: MOV AX,DATA
MOV DS,AX
MOV AX,VARX
SHL AX,1
ADD AX,VARX
ADD AX,VARY
SUB AX,5
SAR AX,1
MOV VARZ,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START
上面你把数据移到Data段了。。Data段没和任何段寄存器绑定。。于是默认使用DS。。于是还是对的……
就算不移吧。。code段同时还和CS绑定了。。这种情况下用哪个寄存器也不好说。。
试下这个好了。。估计会读到系统提供的某段的内容……