Форум программистов, компьютерный форум, киберфорум
Наши страницы

Assembler для начинающих

Войти
Регистрация
Восстановить пароль
 
Yedil_38
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 27
#1

Определение количества предложений в заданном тексте - Assembler

03.04.2016, 15:21. Просмотров 443. Ответов 14
Метки нет (Все метки)

Определите количество предложений в заданном тексте (предложение заканчивается либо точкой, либо вопросительным или восклицательным знаком) в ассемблере надо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2016, 15:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определение количества предложений в заданном тексте (Assembler):

Определить количество слов в заданном тексте - Assembler
Собственно задание - Дан текст. Определить, сколько в нем слов. В ассемблере новичок. Интересует готовый код, чтобы разобрать построчно...

Определение количества параллельных портов - Assembler
Необходимо определить количество параллельных портов. .286 .model tiny .code org 100h begin: int 11h number db 0 and...

Определение версии OS, количества дисководов - Assembler
Суть программы: - Определение версии OS - Количество дисководов - Определение типа ЭВМ - Использовать прерывание Int 11h

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

Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих круглых скобок - Assembler
Доброе время суток уважаемые программисты. Есть такая задачка, нужно написать на ассемблере: Проверить, имеется ли в заданном тексте...

Определение в массиве из 15 байт количества байт, в которых сброшены 6 и 4 биты - Assembler
Помогите пожалуйста разработать программу на языке ассемблера, определяющую в массиве из 15 байт количество байт, в которых сброшены 6 и 4...

14
tahir_
159 / 100 / 25
Регистрация: 18.05.2015
Сообщений: 474
03.04.2016, 20:32 #2
Yedil_38, ну что там сложного, бери scasb и ищи по всему тексту эти приметы, посчитал вот и все
0
proc3nt
волшебник
554 / 421 / 138
Регистрация: 26.05.2012
Сообщений: 1,221
04.04.2016, 19:37 #3
Цитата Сообщение от tahir_ Посмотреть сообщение
бери scasb и ищи
по-моему это сильное расточительство проходить три раза одну и ту же строку. но все же
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
59
.model small                
.386                        
 
.data
count   db  0
msg     db  'One. Two! Three? Four! Five. Six? Seven?'
len     equ $-msg
 
.stack                  
    db  256 dup(?)      
 
.code                   
start:                  
    mov ax,@data
    mov ds,ax
    
    push ds
    pop es
    
    cld
    
    dot:
    mov al,'.'
    lea di,msg
    mov cx,len
    dotfind:
    repne scasb
    jnz exclam
    inc count
    or cx,cx
    jnz dotfind
    
    exclam:
    mov al,'!'
    lea di,msg
    mov cx,len
    exclamfind:
    repne scasb
    jnz question
    inc count
    or cx,cx
    jnz exclamfind
    
    question:
    mov al,'?'
    lea di,msg
    mov cx,len
    questfind:
    repne scasb
    jnz exit
    inc count
    or cx,cx
    jnz questfind
    
    exit:   
    mov ah,4Ch              
    mov al,00h              
    int 21h
end start
1
tahir_
159 / 100 / 25
Регистрация: 18.05.2015
Сообщений: 474
04.04.2016, 19:43 #4
Цитата Сообщение от proc3nt Посмотреть сообщение
по-моему это сильное расточительство проходить три раза одну и ту же строку. но все же
почему 3 ? 1 раз весь массив и все
0
proc3nt
волшебник
554 / 421 / 138
Регистрация: 26.05.2012
Сообщений: 1,221
04.04.2016, 19:54 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
лучше все же взять такой вот вариант
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
lea si,msg
mov cx,len
find:
    lodsb
        
    cmp al,'.'
    jz ok
        
    cmp al,'!'
    jz ok
        
    cmp al,'?'
    jz ok
        
    jmp skip
        
    ok:
    inc count
        
    skip:   
loop find
2
Полный 30h
Эксперт быдлокодинга
1530 / 442 / 60
Регистрация: 04.11.2010
Сообщений: 1,219
05.04.2016, 01:40 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Оптимизирую Позанудствую
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
lea si,msg+1 ; предложение не может кончится не начавшись
mov cx,len
dec cx                 ; и мы сэкономим на проверке первого знака
find:
    lodsb
        
    cmp al,'.'
    jz ok
        
    cmp al,'!'
    jz ok
        
    cmp al,'?'
    jz ok
        
    jmp skip
        
    ok:
    inc count
        
    skip:   
loop find
1
Yedil_38
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 27
05.04.2016, 21:48  [ТС] #7
почему то выходить ошибка, я сам не очень в ассемблере) не могли бы по подробнее написать плииз
0
tahir_
159 / 100 / 25
Регистрация: 18.05.2015
Сообщений: 474
05.04.2016, 22:56 #8
Yedil_38, вы небось прям так компилируете как написал Полный 30h, Без дальнейшего оформления ?
код и ошибки в студию
1
Yedil_38
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 27
07.04.2016, 08:04  [ТС] #9
да)) вот и я об этом
0
Yedil_38
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 27
09.04.2016, 23:12  [ТС] #10
пожалуйста можете весь код отправить
\
0
tahir_
159 / 100 / 25
Регистрация: 18.05.2015
Сообщений: 474
09.04.2016, 23:40 #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Yedil_38,
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
.model small                
.386                        
 
.data
count   db  0
msg     db  'One. Two! Three? Four! Five. Six? Seven?'
len     equ $-msg
 
.stack                  
    db  256 dup(?)      
 
.code                   
start:                  
    mov ax,@data
    mov ds,ax
    
    push ds
    pop es
    
    cld
 
lea si,msg+1 ; предложение не может кончится не начавшись
mov cx,len
dec cx                 ; и мы сэкономим на проверке первого знака
find:
    lodsb
        
    cmp al,'.'
    jz ok
        
    cmp al,'!'
    jz ok
        
    cmp al,'?'
    jz ok
        
    jmp skip
        
    ok:
    inc count
        
    skip:   
loop find
 
exit:   
    mov ah,4Ch              
    mov al,00h              
    int 21h
end start
0
Yedil_38
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 27
10.04.2016, 22:05  [ТС] #12
спасибо большое,
0
Yedil_38
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 27
26.04.2016, 09:00  [ТС] #13
Брат, а сможешь в макрокоманде написать и блок схему плииз
0
tahir_
159 / 100 / 25
Регистрация: 18.05.2015
Сообщений: 474
26.04.2016, 20:02 #14
Yedil_38, 1) макросы я не использую,
2) блок схемы даже за деньги не рисую,
и 3) вы написали 3 сегодня 26, за эти дни можно было и посмотреть справочник команд и разобраться в коде
1
Yedil_38
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 27
29.04.2016, 11:52  [ТС] #15
все разобрался думал не смогу, спасибо
0
29.04.2016, 11:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2016, 11:52
Привет! Вот еще темы с ответами:

В заданном тексте после первого двоеточия надо поменять символ "+" на цифру "3" - Assembler
в тексте после превый двоеточий + еще необходимо заменить их на 3

Определение количества повествовательных предложений в тексте - C (СИ)
Помогите пожалуйста переделать программу. Она редактирует текст, заменяя буквы «о» на «а»; выводит на экран первое исправленное слово. ...

Подсчёт количества предложений в тексте - Visual Basic .NET
Есть текст. Нужно узнать сколько предложений в нём. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ...

Подсчет количества предложений в тексте - Python
Как написать на Питоне прогу, чтобы она считала количество предложений в тексте


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

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

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