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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2013, 15:00   #1
Asel01
 
Регистрация: 26.02.2013
Сообщений: 3
Радость Распечатать введенную строку, удалив из нее символы, не являющиеся буквами и цифрами, и ЗАМЕНИВ КАЖДУЮ ЦИФРУ НА "**"

Код:
.model	tiny
.data
sInput	db	'Vvedite stroku:  $'
sResult	db	0dh, 0ah, 'Rezultat: $'
sSepar	db	9,'?@!#$%^&*()":;><.'	;bykvy,kotorye neobhodimo udalit
len_sep	equ	$-sSepar	;dlina stroki udalyaemyh simvolov

buf	label	byte		;bufer dlya priema stroki s klaviatury
max	db	128		;maksimal'naya dlina stroki
len	db	0		; realnaya dlina vvedennoi stroki
string	db	128 dup (?)	; sama stroka

	.code
	.startup

	lea	dx, sInput
	mov	ah, 9
	int	21h		; priglawenie na ekran

	lea	dx, buf
	mov	ah, 0ah
	int	21h		;vvodim stroku

	lea	dx, sResult
	mov	ah, 9
	int	21h		; Result string

	lea	si, string	; adres stroki
	call	DelSepar

	lea	dx, string	;vyvedem result   
	 mov ah, new_symbol
	mov	ah, 9
	int	21h
exit:
    mov	ax, 4c00h
	int	21h

;obrabotka stroki po adresu v si
;stroka zakanchivaetsya 0dh
;result budet po  tomu je adresu
;v konce stroki budet zapisan '$' (dlya f-i 9 preryvaniya 21)
DelSepar	proc
	mov	bx, si		;adres,kuda budem pisat'
MLoop:
	lodsb			; ocherednoi
	cmp	al, 0dh		; vvedennaya stroka zakanchivaetsya kodom 0dh
	je	return		; na zapis' v konce simvola '$'
	lea	di, sSepar	;adres stroki bukv 
	mov	cx, len_sep	;dlina
	repne	scasb		;iwem v stroke [di] poka ne ravno 
	je	MLoop		;nashli - propuskaem i idem na chtenie sleduiuwego simvola
	mov	[bx], al	;zapishem 
	inc	bx		;i proinkrementiruem adres
	jmp	MLoop		;na povtor
return:
	mov	byte ptr [bx], '$';zakroem stroku
	ret
	new_symbol db "x"   
DelSepar	endp

	end

Помогите,пожалуйста, заменить цифры на "**"
Asel01 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразовать эту строку, удалив из нее те символы, которые соседствуют с символом "_". Proskurina Паскаль, Turbo Pascal, PascalABC.NET 4 28.05.2012 10:55
Pascal ABC строки - программа, которая каждую встреченную букву "б" заменяет сочетанием "ку" (использовать модули) Raigo Помощь студентам 6 17.05.2012 15:35
Напечатать текст, удалив из него все цифры и знаки "+" или "–". Язык С++. KaylasMKTY Помощь студентам 8 07.03.2010 21:35