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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2010, 05:22   #1
Antrikot
 
Регистрация: 10.08.2010
Сообщений: 7
Печаль поиск пробелов в строке на Assembler'е

.model small ; определить тип модели памяти

stack 100h ; определить сегмент стека размером 256 байт

dataseg ; определить сегмент данных
string db 0Dh, 0Ah, 50, ?, 52
prigl db 0Dh, 0Ah, 'введите строку: ', 0Ah,0Dh,'$'
kol_slov db ?
noll db 0Dh, 0Ah, 'строка пуста!','$'
Good db 0Dh, 0Ah, 'результат записан в res','$'
one db ?
res db ?

codeseg ; определить сегмент кода
start:
startupcode ; установить в DS адрес начала сегмента данных

lea DX, prigl
mov AH, 09h
int 21h
lea DX, string
mov AH, 0Ah
int 21h

lea DI, string+2
mov CL, string+1
mov CH, 0

cmp CX, 0
je NULL1
xor BH, BH
mov BP, 20h

L1:
mov AX, [DI] ;найдите мне тут ошибку, в АХ постоянно попадают не те значения
cmp AX, BP
jne no

probel:
inc BH

no:
inc DI
loop L1

mov res, BH
lea DX, Good
mov AH, 09h
int 21h
jmp quit

NULL1:

lea DX, noll
mov AH, 09h
int 21h
lea DX, one
mov AH, 01h
int 21h

quit: ; метка конца работы

exitcode 0 ; передать управление операционной системе. код возврата 0

end start
Antrikot вне форума Ответить с цитированием
Старый 22.08.2010, 06:24   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Код:
.model small ; определить тип модели памяти

stack 100h ; определить сегмент стека размером 256 байт

dataseg ; определить сегмент данных
string db 0Dh, 0Ah, 50, ?, 52
prigl db 0Dh, 0Ah, 'введите строку: ', 0Ah,0Dh,'$'
kol_slov db ?
noll db 0Dh, 0Ah, 'строка пуста!','$'
Good db 0Dh, 0Ah, 'результат записан в res','$'
one db ?
res db ?

codeseg ; определить сегмент кода
start:
startupcode ; установить в DS адрес начала сегмента данных

lea DX, prigl
mov AH, 09h
int 21h
lea DX, string
mov AH, 0Ah
int 21h

lea DI, string+2
mov CL, string+1
mov CH, 0

cmp CX, 0
je NULL1
xor BH, BH

L1:
cmp [di], byte ptr ' '
jne no

probel:
inc BH

no:
inc DI
loop L1

mov res, BH
lea DX, Good
mov AH, 09h
int 21h
jmp quit

NULL1:

lea DX, noll
mov AH, 09h
int 21h
lea DX, one
mov AH, 01h
int 21h

quit: ; метка конца работы

exitcode 0 ; передать управление операционной системе. код возврата 0

end start
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск символа и подсчет пробелов (С) spirit_trapper Помощь студентам 0 21.12.2009 14:15
как в строке вставить n-ое количество пробелов Marinka91 Паскаль, Turbo Pascal, PascalABC.NET 18 14.08.2009 13:33
Поиск с строке nusik Общие вопросы Delphi 3 29.07.2009 14:15
Подсчёт пробелов в ведённой строке prikolist Общие вопросы C/C++ 10 10.04.2009 15:52
Поиск в строке xspider Общие вопросы C/C++ 5 04.02.2009 21:46