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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2014, 15:41   #1
Afamarei
 
Регистрация: 14.03.2011
Сообщений: 5
По умолчанию Помогите решить задачу на ассемблере

Доброго времени суток, помогите пожалуйста решить задачу, для неё используется отладчик AFDP.
Сама задача:
В памяти дана строка символов, находящаяся по адресу А1 и длиной N. Посчитать сколько раз встречаются символы "x", "y" и "z". Результат записать в три смежные ячейки памяти.
Afamarei вне форума Ответить с цитированием
Старый 20.12.2014, 16:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А Ассемблер для какого процессора?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.12.2014, 11:50   #3
Afamarei
 
Регистрация: 14.03.2011
Сообщений: 5
По умолчанию

Для x86 процессоров
Afamarei вне форума Ответить с цитированием
Старый 21.12.2014, 12:45   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ага... Ну в качестве идеи:
Код:
mov si,a; Запоминаем начало строки
xor ax,ax; Готовим регистр для счета кол-ва вхождения
mov cx,n; Устанавливаем цикл до конца строки
for:
 cmp byte [si+cx],'z' ;Если символ равен некоему
 jne next;
 inc ax; Увеличиваем счетчик кол-ва
next:
loop for
mov z,ax; А потом запоминаем его в переменку.
Надеюсь ничего не напутал
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.12.2014, 13:38   #5
Afamarei
 
Регистрация: 14.03.2011
Сообщений: 5
По умолчанию

Ругается на byte
cmp byte [si+cx],'z'
1.jpg

Последний раз редактировалось Afamarei; 21.12.2014 в 13:42.
Afamarei вне форума Ответить с цитированием
Старый 21.12.2014, 15:30   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну убери byte )
Посмотрим как без него.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.12.2014, 15:40   #7
Afamarei
 
Регистрация: 14.03.2011
Сообщений: 5
По умолчанию

Ошибка синтаксиса
2.jpg
Afamarei вне форума Ответить с цитированием
Старый 21.12.2014, 16:13   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну тут я кагбэ пас... Я из-под отладчика никогда не писал программы.
В основном в FASM, так что попробуй подождать местных спецов по асму , може они подскажут.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.12.2014, 18:01   #9
Afamarei
 
Регистрация: 14.03.2011
Сообщений: 5
По умолчанию

Всё равно спасибо за помощь
Afamarei вне форума Ответить с цитированием
Старый 22.12.2014, 04:03   #10
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Stilet,
ругаться будет на cx, под DOS возможны только следующие комбинации
  1. [bp+si]
  2. [bp+di]
  3. [bx+si]
  4. [bx+di]
Mikl___ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кто может решить задачу на ассемблере. Lesj Фриланс 5 06.06.2009 21:19
Помогите пожайлуста решить задачу на ассемблере. Волчица Помощь студентам 1 12.11.2008 21:50