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


Автор: Russs 27.4.2007, 14:24
1)Описать указанные ниже процедуры при следующих условиях:
- все используемые строки — это строки переменной длины (с те-
кущей длиной в начальном байте), их максимальная длина — 255,
нумерация их символов начинается с 1;
- все параметры передаются через стек, причем порядок их записи в
стек — слева направо;
- числовые параметры положительны и имеют размер слова;
- параметр-строка задается своим абсолютным начальным адресом
в виде пары «сегмент : смещение» («сегмент» записывается в стек
первым).
Процедуры (len(S) означает текущую длину строки S):
б) delete(S, i, n) — из строки S удаляются n символов начиная с i-го; при
i > len(S) строка S не меняется; при i + n − 1 > len(S) удаляются все символы
до конца S;


2) Описать близкую рекурсивную процедуру C, вычисляющую биномиальный ко-
эффициент. Задание в прикрепленном файле.

Помогите чам можите, я ваще без понятия как их делать!!! smile  

Автор: W4FhLF 28.4.2007, 15:15
Чтобы познать рекурсию, надо познать рекурсию

Автор: MAKCim 28.4.2007, 16:27
Код

delete:
    pusha
    mov    bp, sp
    mov    cx, word [bp + 18] ; N
    mov    ax, word [bp + 20] ; I
    mov    bx, word [bp + 22] ; offset
    mov    dx, word [bp + 24] ; segment address
    push    ds
    push    es
    mov    ds, dx
    mov    es, dx
    mov    dl, byte [bx]
    and    dx, 0x00FF
    cmp    ax, dx
    ja    exit
    add    ax, cx
    dec    ax
    cmp    ax, dx
    ja    calculate
    add    ax, 2
    sub    ax, cx
    mov    di, ax
    add    ax, bx
    mov    si, ax
    add    di, bx
    mov    ax, cx
    cld
    rep    movsb
    mov    cx, ax
calculate:
    xor    ax, ax
    sub    dx, cx
    js    @F
    mov    ax, dx
@@:
    mov byte [bx], al
exit:
    pop    es
    pop    ds
    popa
    ret

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