Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задачу по ассемблеру. Срочно, не знаю, в чём ошибка, помогите разобрат 
:(
    Опции темы
Teresh
Дата 3.4.2010, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 1.4.2010

Репутация: нет
Всего: нет



Помогите решить задачу. Нужно отфильтровать все символы кроме ctrl-a...ctrl-z. Т.е. если ввожу с клавиатуры ^a, то мне выводится ctrl-a итак далее до ^z. Иначе выводится сообщение об ошибке. У меня выводятся какие-то не понятный строки. Вот мой код. У меня Tasm.

Код


.model small
.stack 100h    
.data
    message db 'Error: illegal symbol$'
    mas1 db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26
    mas2 db 'crtl-a$', 'crtl-b', 'crtl-c', 'crtl-d', 'crtl-e', 'crtl-f', 'crtl-g', 'crtl-h', 'crtl-i', 'crtl-j', 'crtl-k', 'crtl-l', 'crtl-m',  'crtl-n', 'crtl-o', 'crtl-p', 'crtl-q', 'crtl-r', 'crtl-s', 'crtl-t', 'crtl-u', 'crtl-v', 'crtl-w', 'crtl-x', 'crtl-y', 'crtl-z' 
.code

main:
    mov ax, @data    
    mov ds, ax

Filtration:
    
    mov ah, 08h
    int 21h

    cmp al, 1
    jl Error                
    
    cmp al, 25
    jg Error
    
    xor ah, ah
    mov cx, 25
    
    xor si, si
    ;mov dl, mas[si]

    L1:
        cmp al, mas1[si]
        je Output
        inc si
    loop L1
    
    Output:
        mov dl, offset mas2[si]
        mov ah, 09h
        int 21h
    endp
    
    jle Filtration

Error:
    mov dx, ' '
    mov ah, 02h
    int 21h
    mov dx, offset message
    mov ah, 09h
    int 21h

Exit:
    mov ax, 4c00h
    int 21h
    
end main    


PM MAIL   Вверх
gmorgunov
Дата 4.4.2010, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 17.5.2008

Репутация: нет
Всего: 5



В masm-e вот так:
filter.asm
Код

.model small
.stack 100h
.data
    message db 'Error: illegal symbol$'
    mas1 db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26
    mas2 db 'crtl-a$', 'crtl-b$', 'crtl-c$', 'crtl-d$', 'crtl-e$', 'crtl-f$', 'crtl-g$', 'crtl-h$', 'crtl-i$', 'crtl-j$', 'crtl-k$', 'crtl-l$', 'crtl-m$',  'crtl-n$', 'crtl-o$', 'crtl-p$', 'crtl-q$', 'crtl-r$', 'crtl-s$', 'crtl-t$', 'crtl-u$', 'crtl-v$', 'crtl-w$', 'crtl-x$', 'crtl-y$', 'crtl-z$'
.code

main:
    mov ax, @data
    mov ds, ax

Filtration:
    
    mov ah, 08h
    int 21h

    cmp al, 1
    jl Error                

    cmp al, 25
    jg Error
    
    xor ah, ah
    mov cx, 25

    xor si, si
    ;mov dl, mas[si]

    L1:
        cmp al, mas1[si]
        je Output
        inc si
    loop L1
    
    Output:
        mov ax, si          ; ax <-- si
        mov dx,7            ; dx=7 , 'ctrl-x$' - 7 байт
        mul dx              ; ax <-- si*7
        mov dx,ax           ; dx <-- si*7
    mov ax, offset mas2 ; ax <-- offset mas2
    add dx,ax           ; dx <-- offset mas2+7*si
    xor ax,ax           ; ax= 0

        mov ah, 09h
        int 21h
    ;endp

    jle Filtration

Error:
    mov dx, ' '
    mov ah, 02h
    int 21h
    mov dx, offset message
    mov ah, 09h
    int 21h

Exit:
    mov ax, 4c00h
    int 21h
    
end main

Из консоли(cmd.exe):
>ml -c filter.asm
>link16 filter.obj
>filter

PM MAIL   Вверх
Teresh
Дата 4.4.2010, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 1.4.2010

Репутация: нет
Всего: нет



спасибо!!)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0600 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.