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

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

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

Вывод числа повторений слов - Assembler

12.11.2013, 02:13. Просмотров 355. Ответов 2
Метки нет (Все метки)

В заданном тексте найти количество повторений заданного слова.
Текст и количество повторений вывести на экран.

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
60
61
62
63
64
65
66
67
68
69
70
data segment
string_s db "qwerty qwerty uytrewq qwertyui"
word_p db "qwerty $"
divider db 30 dup("="),13,10,36
ends
 
stack segment
dw 128 dup(0)
ends
 
code segment
start: 
mov ax, data
mov ds, ax
mov es, ax
 
cld 
mov cx, 30 
xor si, si 
xor di, di 
 
xor al, al 
xor ah, ah 
 
main_cycle:
 
mov dl, string_s[si] 
mov dh, word_p[di] 
cmp dl, dh 
je first_char_found 
jne not_found 
 
first_char_found: 
inc di 
inc al 
cmp al, 6 
je word_found 
jne next 
 
not_found:
xor al, al 
jmp next
 
word_found:
inc ah
xor al, al 
xor di, di
 
next:
inc si
loop main_cycle
 
exit:
 
lea dx, string_s
mov ah, 9
int 21h
 
lea dx, word_p
mov ah, 9
int 21h 
 
mov ah, 1
int 21h
 
mov ax, 4c00h ; 
int 21h 
ends
 
end start ;
Вот пример программы, вывел строки, сделал сравнение строк, но никак не сделаю так что бы вывело желанное количество повторений..может кто подскажет)) Буду благодарен))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 02:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод числа повторений слов (Assembler):

Формирование строки из исходной путем заданного числа повторений исходной - Assembler
Помогите, если можно! Надо написать программу для формирования строки из исходной путем заданного числа повторений исходной строки,...

Вывод двойных слов - Assembler
Сап анон, полгода учу MASM 4.0 (Intel 8086). Возникла проблема с красивым выводом двойных слов. Ясно что можно выводить их как: mov...

Вывод слов из строки TASM - Assembler
Ввести с клавиатуры строку, состоящую из нескольких слов. Вывести каждое слово на экран в отдельной строке, со смещением влево на одно...

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

Формирование строки из исходной путем заданного числа повторений исходной строки (TASM) - Assembler
Задание: Написать программу формирования строки из исходной путем заданного числа повторений исходной строки. В общем проблема в том,...

Формирование строки из исходной путём заданного числа повторений исходной строки - Assembler
Помогите пожалуйста написать программку формирования строки из исходной путём заданного числа повторений исходной строки. MASM Заранее...

2
Mikl___
Заблокирован
Автор FAQ
12.11.2013, 06:17 #2
by_haskell,
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
; masm dos exe #
.286
.model small
.data
string_s db "aqwerty qwerty uytrewq qwertyui"
num = $ - string_s
divider db "Слово "
word_p db "qwerty"
num1 = $ - word_p - 1
db " встречается в строке "
count db 30h,' раз$'
.stack 256
.code
start:  mov ax,@data
    mov ds,ax
    mov es,ax 
    mov cx,num
    mov di,offset string_s
    mov si,offset word_p+1
    mov al,[si-1]
main_cycle:repne scasb; ищем первый символ подстроки
    jcxz not_found  ; если закончилась строка СХ=0
first_char_found: push si ; найден первый символ  - проверяем остальные
    push cx
    mov cx,num1
    mov bx,cx
    repe cmpsb
    jcxz found
    jmp a0
found: inc count ; найдена вся подстрока
a0: sub bx,cx
    pop cx
    pop si
    sub cx,bx 
        jmp main_cycle
not_found:lea dx,divider
    mov ah,9
    int 21h  
    mov ah,0
    int 16h 
    mov ah,4Ch
    int 21h 
end start
1
by_haskell
0 / 0 / 0
Регистрация: 17.12.2012
Сообщений: 13
12.11.2013, 23:51  [ТС] #3
Спасибо большое)))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2013, 23:51
Привет! Вот еще темы с ответами:

В массиве слов заменить все отрицательные числа нулями - Assembler
Здравствуйте, в универе изучаем ассемблер, а я что-то настолько олень, что вообще в него не въезжаю... Можете помочь с парой задач? Очень...

Вывод числа - Assembler
Доброго вечера. Допустим, есть готовая программа, находящая max элемент массива. Как его вывести? StackSG segment dw 1024 ...

Вывод числа - Assembler
по отладчику программа работает, но с выводом числа -напряг. sseg segment para stack 'stack' db 256 dup(?) sseg ends dseg...

Вывод числа - Assembler
собрал код, как занести из значения х в ах? use16 org 100h mov al, mov cl, add...


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

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

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