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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2019, 03:15   #1
So7aire
Новичок
Джуниор
 
Регистрация: 15.01.2019
Сообщений: 1
Восклицание [Assembler] Помогите решить задачу.

Ребята добрый день помогите пожалуйста решить задачу на ассемблере TASM, у меня в четверг защита КР осталась последняя задача уже устала пробывать разными методами и не получается.

В последнем слове строки посчитать количество букв а. Строка уже в самой программе то есть вводить не надо, нужно сделать на латинице не на русском.
Вывод исходной строки, и результата.
Пожалуйста помогите.
So7aire вне форума Ответить с цитированием
Старый 15.01.2019, 06:28   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от So7aire Посмотреть сообщение
устала пробывать разными методами и не получается.
где эти методы? показывайте свои наработки..
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 15.01.2019, 09:58   #3
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Программа ищет число вхождений символа в строку (по всей строке). Вам нужно начинать от конца до пробела. Алгоритм тот же, только ввод замените на статичный символ А и уже написанную строку.

Напрочь забыл асм, но думаю прога старая из моей темы поможет

http://www.programmersforum.ru/showp...48&postcount=3
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 15.01.2019, 13:12   #4
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
Алгоритм тот же,
..мимо! чтобы переделать этот код под условие ТС,
нужно большую его часть переписать.
например на fasm'e это можно решить чуть-ли не тремя строчками:
Код:
org  100h
jmp  start

mes  db  'сюда подставляем любую строку',13,10,$
len  =   $ - mes               ; длинна строки (вычисляется автоматом)

start:  mov  ah,9              ; выводим текущую строку
        mov  dx,mes
        int  21h

        xor  ax,ax             ; очистить АХ (AH будет счётчиком найденных "а")
        mov  si,mes            ; SI = указатель на начало строки
        add  si,len-3          ;   ..ставим его в конец.
        std                    ; обратный шаг для LODSB
@00:    lodsb                  ; читаем в AL байт из SI
        cmp  al,' '            ; пробел?
        je   @stop             ; да - выйти!
        cmp  al,'a'            ; наш символ?
        jne  @01               ; нет - пропустить!
        inc  ah                ; иначе: увеличить счётчик найденных.
@01:    jmp  @00               ; на повтор..

@stop:  shr  ax,8              ; сдвинуть AH в AL (shift right, на 8-бит вправо)
        add  al,30h            ; перевести счётчик в символ (макс.9)
        int  29h               ; вывести AL на экран!
        ret                    ; game ower!!!
So7aire, зачем вы поступили на этот факультет,
если самостоятельно ничего делать не хотите? Надо было поступать на "кройку-и-шитья".
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу на Assembler'е sashok94 Помощь студентам 1 17.11.2013 18:38
Решить задачу на Assembler'е Deathcube Помощь студентам 1 27.01.2012 12:31
Помогите решить задачу, завтра Экзамен! (assembler) Moower Помощь студентам 1 06.06.2009 13:41