程序集x86 - 加载地址注册失败

时间:2017-02-14 18:36:14

标签: assembly emu8086

我现在正在学习大会,我偶然发现了一个奇怪的问题。

看看这段代码:

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指针。 谢谢你的帮助!

0 个答案:

没有答案