在emu8086 4.08中,我使用此语法声明我的代码段并初始化程序:
Code SEGMENT
ASSUME CS:Code, DS:Data, SS:Stack
MOV AX, Data
MOV DS, AX
MOV ES, AX
这些是数据段中字符串的声明:
Str1 DB 50,0,50
Str2 DB 50,0,50
假设这两个指令声明了两个带有50个字符空格的字符串。我使用这种语法从输入用户读取两个字符串:
LEA DX, Str1
MOV AH, 0Ah
INT 21h
现在,如果我同时放置Hello World
,模拟器将以这种方式存储:
Store the second string in positions of the first string
为什么会这样?是因为我在字符串的语法中做错了吗?是否有必要将MOV ES, AX
放入程序中?