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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2009, 15:05   #1
Glock
Новичок
Джуниор
 
Регистрация: 20.11.2009
Сообщений: 1
Вопрос Замена символа...

MASM ; Режим
MODEL small ; Модель памяти
.STACK 256 ; Сегмент стека
.DATA ; Сегмент данных
mes DB 21,22 DUP (' '),'$'
; ---------------------------------------
Adr DW mes ; (Adr)=<Адрес_строки_mes>
Str1 DB "Введите строку: ",'$'
.CODE
Start:
mov ax,@data ; (AX)=<Адрес_сегмента_данных>
mov ds,ax ; (DS)=(AX)
; --------
Print Str1 ; Макрокоманда по печати строки Str1
; ------------------------------------------------
; Ввод строки символов с клавиатуры
; --------------------------------------------------
mov ah,0Ah ; (AH)=<Номер_функции_по_вводу_строки >
mov dx,[Adr] ; (DX)=<Адрес_памяти_для_ввода_строки >
int 21h ; Ввод строки с клавиатуры в память
; -------
mov ah,02 ; (AH)=<Функция_вывода_символа>
mov dl,0Ah ; (DL)=<Код_перевода_курсора>
int 21h ; Вывод символа на экран
; ------------------------------------------
mov bx,[Adr] ; BX - указатель на строку mes
inc bx ; BX - указатель на второй байт строки mes
; ------------------------------------------------------
; Организация передвижения по строке символов вправо на
; один байт и анализа каждого символа этой строки
; -----------------------------------------------
Cycl:
inc bx ; BX - указатель на следующий байт строки
; введённых с клавиатуры символов
mov al,[bx]
cmp al," " ; Сравнение кода символа с кодом символа " "
je Yes ; Если коды совпадают, то переход по метке
cmp al,0Dh ; Сравнение кода символа с кодом <Enter>
je No ; Если коды совпадают, то переход по метке
jmp Cycl ; Переход по метке на обзор следующего символа
; ----------------------------------------------------------
Yes:
mov al,"?"
mov [bx],al
No:

Exit:
mov ah,08h
int 21h
mov ax,4C00h
int 21h
END Start




Помогите доделать прогу!!! Нужно пробелы заменить на вопросы!!!
Спасибо!
Glock вне форума Ответить с цитированием
Старый 20.11.2009, 15:13   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Код:
        lea di,[mes+2]
        mov al,' '
        xor ch,ch
        mov cl, [mes+1]
l1:
        repnz scasb     
        jnz exit
        mov byte ptr [di-1],'?'
        jmp l1
exit:
А если брать ваш код, то может стоит переходы поставить после обработки символа ?
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 20.11.2009 в 15:17.
Goodwin98 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TStringList Замена символа на ряд символов. Alex Cones Общие вопросы Delphi 17 23.03.2010 20:00
ассемблер, замена символа в строке tiger Помощь студентам 3 05.11.2009 15:25
Замена или вставка символа в char *. Lazio Общие вопросы C/C++ 11 30.09.2009 19:19
Замена символа Flippp Общие вопросы C/C++ 20 24.06.2009 17:18
Перл. Замена символа \ на символ / Stilet PHP 1 12.04.2008 10:17