我现在正在学习大会,我偶然发现了一个奇怪的问题。
看看这段代码:
DSEG SEGMENT
STRING DB "The quick brown fox jumped over the lazy dog", 0
NSTRING DW 45
FIND DB "over"
DSEG ENDS
SSEG SEGMENT STACK
DW 100H DUP(?)
SSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG, SS:SSEG ; Assume
MAIN PROC FAR ; Creating the main process.
; a bunch of code here...
MOV BX, 0
MOV SI, OFFSET STRING[BX] ; Setting the SI to the string's current index.
MOV DI, OFFSET FIND ; Setting the DI to the start of find.
; just a bunch more here...
RET
MAIN END
CSEG ENDS
END MAIN
当我调试程序时,SI为0,DI为SI + SIZE。 我知道SI是0,但DS是0,而不是内存! 有没有办法通过索引BX获取STRING的地址? 我尝试了LEA,它有相同的结果!
我试图进入SI指针并进入DI指针。 谢谢你的帮助!