Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Работа со стеком


Автор: Russs 26.5.2007, 19:55
Считая, что в программе на сегмент стека отведено 1000 байтов, 
и используя строковые команды, выписать фрагмент программы для 
решения следующей задачи: если в стеке нет ни обного нулевого байта,
тогда переписать содержимое стека в область памяти, начинающейся с 
абсолютного адреса 12345h

Помогите чем можите! smile 

Автор: MAKCim 26.5.2007, 21:24
Код

rewrite:
    push es
    mov ax, ss
    mov es, ax
    mov di, sp
    dec di
    xor ax, ax
    mov cx, 1000
    std
    repnz
    scasb
    test cx, cx
    jnz end
    mov di, 5
    mov ax, 1234h
    mov es, ax
    mov cx, 1000
    mov si, sp
    sub si, cx
    push ds
    mov ax, ss
    mov ds, ax
    shr cx, 1
    cld
    rep
    movsw
    pop ds
end:
    pop es
    ret

Автор: Russs 27.5.2007, 17:16
MAKCim, огромное спасибо, выручил!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)