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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2011, 12:32   #1
VARVAR_GIO
 
Регистрация: 09.06.2011
Сообщений: 2
По умолчанию Обработка строки: из больших латинских делать маленькие латинские

мне помогли сделать...но она выводит не те символы, нужно из больших латинских делать маленькие латинские...исправьте пожалуйста
Код:
.model	tiny
	.code
	org	100h

Start:
mov dx,offset InpStr
mov ah,9
int 21h
push dx
push ax
	mov	si, 0
M1:			
        mov	al, InpStr[si]	; Читаем очередной символ строки.
	cmp	al, 'A'		; Сравниваем с кодом символа A.
	jb	M5		; Не входит ни в один букв. диапаз.-просто копир.
	cmp	al, 'Z'		; Сравниваем с кодом символа Z.
	ja	M2		; Не входит в диапазон A..Z - проверяем дальше.
	add	al, 32		; Преобразовние A..Z -> a..z.
	jmp	M5
M2:	cmp	al, 'А'		; Сравниваем с кодом символа А.
	jb	M5		; Не входит ни в один букв. диапаз.-просто копир.
	cmp	al, 'П'		; Сравниваем с кодом символа П.
	ja	M3		; Не входит в диапазон А..П - проверяем дальше.
	add	al, 32		; Преобразовние А..П -> а..п.	
	jmp	M5
M3:	cmp	al, 'Я'		; Сравниваем с кодом символа Я.
	ja	M4		; Не входит в диапазон Р..Я - проверяем дальше.
	add	al, 80		; Преобразовние Р..Я -> р..я.	
	jmp	M5	
M4:	cmp	al, 'Ё'		; Сравниваем с кодом символа Ё.
	jne	M5		; Не входит ни в один букв. диапаз.-просто копир.
	mov	al, 'ё'		; Преобразовние Ё -> ё.	
M5:	mov	InpStr[si], al	; Запис. символ(возможно преобр.)в выходн. стр.
	inc	si		; Команды завершения тела цикла.
        cmp	si, N
	jb	M1
pop ax
pop dx
int 21h
xor ax,ax
int 16h
	ret

InpStr	db	'ODNAJDI V STUDENUIU ZIMNIUIU PORU '
	db	'BIL MOROS...',0ah,'$'
N	=	$-InpStr-2      	; Длина строки InpStr

end	Start


___________
1) Название темы должно адекватно отражать суть решаемой задачи/проблемы.

2) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 23.06.2011 в 13:25.
VARVAR_GIO вне форума Ответить с цитированием
Старый 23.06.2011, 12:41   #2
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

VARVAR_GIO, ты небось екзешник собираешь? А надо .com. В масм32 вот так:
ml /c /AT prog.asm
link16 /t prog.obj;
vadimych вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа недоработана. из больших букв делать маленькие VARVAR_GIO Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 09.06.2011 16:34
Ввести массив вещественных чисел NxM для заданной строки массива найти два самых больших числа (на C#) владислав10 Помощь студентам 1 10.04.2011 14:10
Строки. преобразовать прописные латинские буквы в строчные Antonio_getscool Помощь студентам 5 12.03.2010 09:43
При конвертации данных из Акса2000 в ехель2007 обрезаются строки. Что делать? VVlad69 Microsoft Office Access 0 02.04.2009 14:53
поменять большие буквы на маленькие и маленькие на большие в си++ Барби Помощь студентам 4 08.04.2008 01:25