С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
GlebBr
0 / 0 / 0
Регистрация: 24.10.2015
Сообщений: 2
1

Определить номера букв не являющихся буквами латинского алфавита

24.10.2015, 23:36. Просмотров 226. Ответов 0
Метки нет (Все метки)

Для заданной строки с нулевым завершителем определить номера букв не являющихся буквами латинского алфавита.
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
section .text
global _start
_start:
mov ebx, 1
mov ecx, len_mystring
mov edi, latin
mov esi, mystring
cld
l1:
lods
mov ecx, len_latin
repne scasb
jne notfound
mov ecx, len_mystring
sub ecx, ebx
inc ebx
notfound:
; вывод номера символа
mov eax,4
mov ebx,1
mov ecx,if_found
mov edx,found_len
int 80h
mov ecx, len_mystring
sub ecx, ebx
inc ebx
loop l1
mov eax, 1
mov ebx, 0
int 80h
 
section .data
 
latin db 'qwertyuiopasdfghjklzxcvbnm', 0
len_latin equ $ - latin
 
mystring db 'abс', 0
len_mystring equ $ - mystring
 
if_found db 'FOUND', 0
found_len equ $ - if_found
в EBX заношу 1, позже объясню зачем.В ECX заношу длинну входящей строки.В EDI заношу слово из всех букв латинского алфавита(пока только нижний регистр).В ESI заношу свою строку.Цикл: lods считает из моей строки первый симовол и занесет его в AL. В ECX заносится длинна строки которая содержит латинские символы, т.к scasb работает с регистром сх.Если латинского симовла scasb не нашел, вывожу содержимое EDX(пока не знаю как. поэтому просто вывожу слово FOUND.сколько символов не лат. алфавита, столько раз FOUND.).Дальше опять заношу в ECX длинну моей строки(Потому что и loop и scasb работают с ECX.).Отнимаю от ECX значение EBX и делаю инкремент EBX.Цикл заново. Не зависимо от того, будут ли во входящей строке лат. символы или нет, в консоль выводится FOUND много раз. Что я делаю не так?в ассмблере полный ноль.
OC: Linux mint.
nasm
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2015, 23:36
Ответы с готовыми решениями:

Номера букв, не являющихся буквами латинского алфавита
Для заданной строки с нулевым завершителем определить номера букв не являющихся буквами латинского...

Определить номер столбца, в котором больше всего букв латинского алфавита
Нужна помощь, задача такова: Определить номер столбца, в котором больше всего букв латинского...

Распечатать N первых букв латинского алфавита
как ето сделать?? Ввести целое число N (N<27). Распечатать в 1-ой строчке N первих больших букв...

Определить, каких букв русского алфавита нет в строке
Здравствуйте, помогите пожалуйста! Нужно определить каких букв русского алфавита нет в строке!

Вывод латинского алфавита реверсно
Привет всем. Нужна помощь по написанию программы для вывода латинского алфавита реверсно(т.е. от...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2015, 23:36

Выделить на экране зеленым цветом все буквы латинского алфавита
Нужна помощь, сам написать не в состоянии( Выделить на экране зеленым цветом все буквы латинского...

Вывести на экран прописные буквы латинского алфавита (цикл без LOOP)
Написать программу, которая выводит на экран прописные буквы латинского алфавита, для этого...

Заменить все буквенные символы латинского алфавита в исходной строке на символ, введенный с клавиатуры
Написать программу, заменяющую все буквенные символы латинского алфавита в исходной строке на...


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

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

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