Данные затирают функцию


CODE    SEGMENT
    ASSUME CS:CODE,DS:NOTHING,ES:NOTHING,SS:NOTHING
    ORG ORIGIN


    Public $START
$START:
            ; WARNING -- Don't change this to a short jmp
    jmp Main            ; Jump to start of code


PUBLIC uData
uData   LABEL   BYTE
                        ;Equates to allow access to
                        ;storage where Main is now
Sec9        EQU BYTE PTR uData+0    ;11 byte diskette parm. table


MAIN:
    cli             ;Stop interrupts till stack ok
    xor AX,AX
    mov SS,AX           ;Work in stack just below this routine

;--------- skip code


    mov BX,78h
    lds SI,DWORD PTR SS:[BX]    ; get address of disk table
    push    DS          ; save original vector for possible
    push    SI          ; restore
    push    SS
    push    BX
    mov DI,OFFSET Sec9
    mov CX,11
    cld

    repz    movsb
    

Тут получается что когда мы доходим до movsb то там где раньше была функция Main на это место скопированы 11 байтов. Я новичек в ассемблере и хотел спросить- я правильно разобрался в коде, или тут ошибка? Правильно что функция Main затирается данными 11 байт?


Ответы (0 шт):