С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Tetraider
15 / 15 / 0
Регистрация: 06.06.2012
Сообщений: 58
1

Посчитать количество слов в строке: исправить код

13.12.2012, 14:00. Просмотров 646. Ответов 1
Метки нет (Все метки)

Помогите пож. поправить программу. Она должна считать кол-во слов в строке. (но считает не верно) Заранее огромное спасибо!
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.386           ;поддержка команд   
 
         ;процессора 80386
.model flat, stdcall         ;плоская модель памяти
option casemap:none 
include WINDOWS.INC
include kernel32.inc
include user32.inc
includelib kernel32.lib
includelib user32.lib
 
BSIZE equ 256
.data
 msg1 byte 'Enter String: ', 0
 msg2 byte 'Kol-vo slov: ', 0
 buf byte BSIZE dup (?)
 chislo byte  3 dup (?)
 typ db '%i', 0
 len dword ?
 dig dword ?
 cWrite dword ?
 stdin dword ?
 stdout dword ?
.code
start:
 invoke GetStdHandle, STD_INPUT_HANDLE      ;получаем хендл клавиатуры
 mov stdin, eax         ;сохраним
 invoke GetStdHandle, STD_OUTPUT_HANDLE      ;хендл экрана
 mov stdout, eax         ;сохраним
 invoke WriteConsoleA, eax, ADDR msg1, SIZEOF msg1, ADDR cWrite, NULL  ;приглашаем к вводу   
 invoke ReadConsole,  stdin, addr buf, BSIZE, addr len, NULL
 mov ecx, len           ;записываем сколько раз повторить команду rep
 sub ecx, 2
        xor esi, esi           ;si=0
        xor eax, eax           ;ax=0
        cld                 ;DF=0
        mov al,' '          ;символ для сравнивания
        lea edi, buf         ;указатель на строку для обработки
 oi:           
 repne scasb
 je oi2
 cmp byte ptr [edi], 13
 je oi1
 jmp short oi
oi2:
 inc esi
 repe scasb
 dec edi
 inc ecx
 jmp short oi
    oi1:
 
  invoke wsprintf, offset chislo, offset typ, esi
 invoke WriteConsoleA, stdout, ADDR msg2, SIZEOF msg2, ADDR cWrite, NULL
 invoke WriteConsoleA, stdout, addr chislo, SIZEOF chislo, addr cWrite, NULL
exit: invoke ReadConsole, stdin, ADDR buf, BSIZE, ADDR len, NULL   ;ждем нажатия клавиши
 invoke ExitProcess, NULL       ;выходим в windows
end start
Добавлено через 18 часов 18 минут
---UP---
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 14:00
Ответы с готовыми решениями:

Рассматривая массив из восьми пятибитных слов, посчитать количество слов с чётным числом единиц в слове
пожалуйста помогите с решением, плаваю в этих битах немного...(( программа на...

Посчитать количество слов с нечётным числом единиц в слове
Дан массив из 5 байт. Рассматривая его, как массив из восьми пятибитных слов,...

Посчитать количество гласных в данной строке
помогите пожалуйста,бьюсь которую неделю,не работает,может подскажет кто что?...

Посчитать количество точек и запятых в строке
вобщем большая просьба исправить маленькие недочёты в программе на языке...

Посчитать количество символов, не являющихся цифрами, в строке
эээ...ну собственно в теме всё написано))) как строка будет заданна без...

1
Tetraider
15 / 15 / 0
Регистрация: 06.06.2012
Сообщений: 58
15.12.2012, 22:38  [ТС] 2
--up--
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2012, 22:38

Заменить последний символ в строке (исправить код)
Всем доброго времени суток, только начинаю программировать на ассемблере...

Посчитать количество символов, у которых равные соседи в исходной строке
В общем задача состоит в том чтобы посчитать количество символов у которых...

Подсчитать количество слов в строке..
Доброго времени суток. Мне нужно подсчитать количество слов в строке.(слова...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru