Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2014, 02:07   #1
Nikich500
Новичок
Джуниор
 
Регистрация: 17.11.2014
Сообщений: 1
Вопрос диапазон символов в строке

Здравствуйте, нужна помощь в том, чтобы в str1 записывал все символы кроме цифр из string. Так вот, в данном коде ничего не записывается, но, если закомментировать cmp al, 48 jnl l3, то выводятся все символы после 57-го символа ASCII, а если закомментировать cmp al, 57 jng l3, то выводятся все символы до 47-го символа ASCII. если не комментировать ни то, ни то то ничего не выводится хотя по идее при наложении этих условий они оба должны выполняться... Что делать?
Код:
.386
    .model flat, stdcall
    option casemap:none
     
     
    include         c:\masm32\include\windows.inc          
    include         c:\masm32\include\kernel32.inc
    includelib      c:\masm32\lib\kernel32.lib
     
    .data
                     instring db 'input string:'
                     outstring db 'output strings:'
                     string db 'ABCDEFGHIJKLAAMNOPQRSTUXYZ,f.gh-+klmnopqrstuvwxyz;:012345678912345'   
                     str1   dd 0
    .code
     
    _start:  
                xor eax,eax
                xor edi,edi
                mov cx,20h
                lea edx,newLine
                add edx,2
                mov str1,edx ; Адресс начала первой строки
                mov edi,edx
                xor edx,edx
                lea esi, string
                mov ah,2
l1:     lodsb
        cmp al, 48 ;условия отбора  диапозона символов
            jnl l3
        cmp al, 57
            jng l3
        
        stosb
                loop l1
                jmp l4
l2:     inc esi
l3:              loop l1
l4:            
                dec ah
                cmp ah,0
                je l5
                mov cx, 20h
                add ebx,4
                xor edx,edx
                jmp l1
l5:
        cmp di,0
                jne l6
        mov esi, ebx
        mov cx,40h
        rep movsb
Nikich500 вне форума Ответить с цитированием
Старый 23.12.2014, 07:33   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Код:
.386
    .model flat, stdcall
    option casemap:none
     
     
    include         c:\masm32\include\windows.inc          
    include         c:\masm32\include\kernel32.inc
    includelib      c:\masm32\lib\kernel32.lib
     
    .data
                     instring db 'input string:'
                     outstring db 'output strings:'
                     string db 'ABCDEFGHIJKLAAMNOPQRSTUXYZ,f.gh-+klmnopqrstuvwxyz;:012345678912345'
num = $ - string   
                     str1   db num dup (0)
    .code
     
    _start:  
                mov ecx,num
                mov edi,offset str1; Адрес начала второй строки
                mov esi,offset string; Адрес начала первой строки
l1:     lodsb
        cmp al, "0" ;условия отбора  диапазона символов
            jb l3
        cmp al, "9"
            jbe l4        
l3:        stosb
l4:        loop l1

Последний раз редактировалось Mikl___; 23.12.2014 в 07:46.
Mikl___ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
азаработать программу Подсчета числа символов указанного типа в любой заданной строке символов . slava5170 Общие вопросы C/C++ 4 03.11.2013 02:18
Количество символов в строке! kalosha-stepa Паскаль, Turbo Pascal, PascalABC.NET 7 24.09.2012 08:09
Найти и выделить по выделенной строке диапазон с такой строкой на другом листе (Excel 2003) vfv Microsoft Office Excel 8 10.03.2010 09:30
замена символов в строке euhenia Помощь студентам 3 30.11.2009 20:59
Диапазон символов Kashey Общие вопросы Delphi 4 11.10.2009 00:02