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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2017, 12:13   #1
Zhan1234
Новичок
Джуниор
 
Регистрация: 26.04.2017
Сообщений: 2
По умолчанию Assembler: Создать и отладить программу, которая в заданной строке Str db 'задание' подсчитывает количество символов 'а' и выводит полученную величину на экран

Помогите с решением, пожалуйста)
"Создать и отладить программу, которая в заданной строке Str db 'задание' подсчитывает количество символов 'а' и выводит полученную величину на экран."
Zhan1234 вне форума Ответить с цитированием
Старый 27.04.2017, 10:35   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Код:
      mov  si,Str
      mov  cx,7
      xor  ah,ah
@@:   lodsb
      cmp  al,'a'
      jne  fuck
      inc  ah
fuck: loop @b
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 27.04.2017, 21:49   #3
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Сообщений: 295
По умолчанию

Это вариант для FASM, если что
для TASM @b меняем на @@, а mov si,Str - на lea si,Str

Как вариант:
Код:
      lea si,Str
      mov cx,7
      xor dx,dx
next: lodsb
      sub al,'а'
      sub al,1
      adc dl,dh
      loop next
      ; результат в DX
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru

Последний раз редактировалось 7in; 27.04.2017 в 21:54.
7in вне форума Ответить с цитированием
Старый 28.04.2017, 04:14   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Код:
     xor dx,dx
      push ds
      pop es
      mov cx,длина_строки
      mov al,символ_который_ищем
      mov di,адрес_строки
a1:   repne scasb
      jcxz a2
      inc dx
      jmp a1
a2:  cmp [di-1],al
      jnz a3
      inc dx
a3: mov ax,dx
      aam
      add ax,'00' 
      mov dl,ah 
      mov dh,al 
      mov ah,2 
      int 21h 
      mov dl,dh 
      int 21h

Последний раз редактировалось Mikl___; 28.04.2017 в 14:01.
Mikl___ вне форума Ответить с цитированием
Старый 28.04.2017, 07:44   #5
Nif-naf
Форумчанин
 
Аватар для Nif-naf
 
Регистрация: 05.09.2016
Сообщений: 131
По умолчанию

Прога для Masm4. Считает все символы в заданной строке и записывает в ячейку памяти N.
http://Programmersforum.ru/attachmen...6&d=1493012783 . Вывод числа по команде Outint Y, читаем у В.Н.Пильшикова или переделав прогу сами выводим. Выводить нужно N+1.
Читаем здесь http://www.programmersforum.ru/showp...9&postcount=43. Читаем в разделе Литература обе части.
Немного о GoAsm.

Последний раз редактировалось Nif-naf; 28.04.2017 в 07:52.
Nif-naf вне форума Ответить с цитированием
Старый 28.04.2017, 11:33   #6
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Сообщений: 295
По умолчанию

Mikl___,
1. repne scasb тогда уж
2. jcxz (у тебя опечатка, кстати) нельзя делать так! Последний символ не посчитается. Надо jnz

Или вот так переделать:
Код:
.model tiny
.386

.data
String db 'bananamama'
lString = $-String

.code
.startup

     mov cx,lString
     mov di,offset String
     mov al,'a'
     mov dx,-1
a1:  inc dx
     repne scasb
     jz a1

     mov ax,dx
     aam
     add ax,'00' 
     mov dl,ah 
     mov dh,al 
     mov ah,2 
     int 21h 
     mov dl,dh 
     int 21h

     int 20h

end
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
7in вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать программу , которая при вводе строки символов выведет эти символы на экран. neon21 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 12.12.2015 00:31
азаработать программу Подсчета числа символов указанного типа в любой заданной строке символов . slava5170 Общие вопросы C/C++ 4 03.11.2013 02:18
Pascal. нужно написать программу,которая подсчитывает величину информационной энтропии Ирка555 Помощь студентам 3 20.03.2013 09:36
Программа, которая выводит на экран прописные буквы латинского алфавита (assembler) Kallycta Помощь студентам 2 20.02.2012 21:56
Написать программу которая для заданного символьного ряда подсчитывает количество слов! komarvl Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 11.12.2009 01:42