singlepost

вопрос по Ассемблеру << На главную или назад  

доброе время суток всем!
помогите разобраться в программе: заданы две строки. скопировать в третью строку те символы, которые есть во второй строке. определить число символов в результируюшей строке. (текст взят из методички, но не работает) почему зацыкливается?
model small
stack 256
.Data
string1 db 'fb123cd45'
string2 db '0123456789'
n1 dw 9
n2 dw 10
res db 9 dup(?)
n dw ?
.code
begin: mov ax,@data
mov dx,ax
lea di,res
mov ax,0
mov cx,n1
lea si,string1
Fori: push cx
lea bx,string2
mov cx,n2
Forj: mov dl,[si]
cmp dl,[bx]
jne nexti
mov[di],dl
inc ax
inc di
jmp breakj
nexti: inc bx
loop forj
breakj: pop cx
inc si
loop fori
mov n,ax
mov ah,4ch
int 21h
end begin

38 ответов в теме “вопрос по Ассемблеру”

  1. 5
    Сергей Полушкин ответил:

    Вот, компилер MASM:

    .MODEL small
    .STACK 256

    .DАТА
    str1 db "00123cd45",0Dh,0Ah,'$'
    str2 db "0123456789",0Dh,0Ah,'$'
    n1 dw 9
    n2 dw 10
    res db 10 dup(?),0Dh,0Ah,'$'
    n dw 0

    msg1 db "res=",'$'
    msg2 db "n=",'$'

    .CODE
    begin:
    mov ax,@DАТА
    mov ds,ax
    xor ax, ax

    mov di, offset res
    mov si, offset str1
    mov bx, offset str2
    mov cx, n2

    for_i:
    push cx
    cmp cx, 0
    je end_loop
    mov cx, n1

    for_j:
    cmp cx, 0
    je end_for_i
    mov al, [si]
    cmp al, [bx]
    jne end_for_j
    mov [di], al
    inc di
    mov ax, n
    inc ax
    mov [n], ax
    end_for_j:
    inc si
    loop for_j

    end_for_i:
    pop cx
    mov si, offset str1
    inc bx
    loop for_i

    end_loop:

    mov dx, offset msg1
    mov ah, 9
    int 21h

    mov dx, offset res
    mov ah, 9
    int 21h

    mov dx, offset msg2
    mov ah, 9
    int 21h

    mov ax, n
    add ax, 30h
    mov dx, ax
    mov ah, 2
    int 21h

    mov ax,4C00h
    int 21h

    end begin

  2. 4
    Michael Hardcoder ответил:

    По-моему, после строки "begin: mov ax,@data" должна быть строка "mov ds, ax", а не "mov dx, ax" так как мы в начале должны загрузить в регистр ds адрес сегмента данных.

  3. 3
    Настя Соломатова ответил:

    к меня нет этой программы((( а что она помогает?

  4. 2
    Александр Фёдоров ответил:

    а в турбо-дебагерре(TD.EXE) пробовала прогнать?

  5. 1
    Ленко Gluconic ответил:

    оооо! настюха)))

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.