Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
1 / 1 / 0
Регистрация: 03.11.2010
Сообщений: 40
1

Напишите процедуру, которая сканирует строку для поиска первого вхождения ограничивающего символа

13.11.2011, 00:15. Просмотров 1528. Ответов 5
Метки нет (Все метки)


Напишите процедуру, которая сканирует строку для поиска первого вхождения ограничивающего символа (например ',') и заменяет ограничивающий символ нулевым байтом. После вызова, если ограничивающий символ найден, в регистре SI содержится смещение символа, следующего за ограничителем. В противном случае SI=0. Входные параметры: ES : DI указывает на строку, а в регистре AL содержится ограничивающий символ
Заранее спасибо за помощь!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2011, 00:15
Ответы с готовыми решениями:

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

Напишите функцию для поиска первого уникального символа в строке
Пожалуйста! Напишите функцию для поиска первого уникального символа в строке(с пояснением...

Ввести строку текста и строку поиска, найти местоположение первого вхождения строки поиска в строку текста
Здравствуйте, не могли бы вы помочь новичку в программировании))) Нужно написать програмку,...

написать программу которая для заданной строки s находит порядковые номера первого и последнего вхождения какого-то символа x.
1. написать программу которая для заданной строки s находит порядковые номера первого и последнего...

5
764 / 308 / 11
Регистрация: 27.05.2011
Сообщений: 703
14.11.2011, 15:45 2
allens, выделить и сделать процедуру в этой проге, не составит труда (так что, покажи свои способности).
без комментариев:
.потому, что ввод и вывод в https://www.cyberforum.ru/asse... 80071.html был описан (вроде как, тебе там было всё понятно)
.сканирование есть в справочнике, цитировать нет смысла.

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
.model small
.data
    string db 100,?,101 dup ('$')
.code 
start:
    mov ax,@data
    mov ds,ax
    mov es,ax
    
    mov ah,0ah
    lea dx,string
    int 21h  
  
        mov al,','
    lea di,string+2
    xor cx,cx
    mov cl,byte ptr es:[di-1]
    repnz scasb
    jnz next
    mov si,di
    mov byte ptr es:[di-1],0
next:
 
    mov byte ptr string[1],0ah
    mov ah,9
    lea dx,string+1
    int 21h
    
        mov ax, 4c00h
        int 21h
end start
1
1 / 1 / 0
Регистрация: 03.11.2010
Сообщений: 40
16.11.2011, 22:36  [ТС] 3
внутренняя процедура:
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
.model small
.data
        string db 100,?,101 dup ('$')
.code 
start:
        mov ax,@data
        mov ds,ax
        mov es,ax
        
        mov ah,0ah
        lea dx,string
        int 21h  
  
        mov al,','
        lea di,string+2
        xor cx,cx
        mov cl,byte ptr es:[di-1]
        call procedure
 
        mov si,di
        mov byte ptr es:[di-1],0
next:
 
        mov byte ptr string[1],0ah
        mov ah,9
        lea dx,string+1
        int 21h
        
        mov ax, 4c00h
        int 21h       
        
        
procedure proc
            repnz scasb
        jnz next
        ret
        procedure endp
        
end start
0
764 / 308 / 11
Регистрация: 27.05.2011
Сообщений: 703
16.11.2011, 22:44 4
как минимум косяк в 35стр, (дальше не смотрел)
т.е. при переходе по метке, у тебя в стеке остаётся адрес 19 строки, и соответственно при выходе из проги будет переход на эту же(19) строку.

ПОДУМАЙ ЕЩЁ!
да и сама процедура не красивая.
1
1 / 1 / 0
Регистрация: 03.11.2010
Сообщений: 40
17.11.2011, 00:45  [ТС] 5
не красива по какой причине!?
в оформлении или в корректности выполнения?
0
764 / 308 / 11
Регистрация: 27.05.2011
Сообщений: 703
17.11.2011, 00:54 6
ну как-то смысла нет в процедуре писать одну строчку (уж лучше тогда без процедуры обойтись, но у тебя задание такое).
на мой взгляд, было бы интересней сделать так:
передать параметры ч/з стек, это как функции в 32битных приложениях, ну конечно не оптимально, но по крайней мере научишься работать со стеком.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2011, 00:54

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Поиск первого вхождения символа в строку
Процедура Str_scan производит сканирование строки для поиска первого вхождения определенного...

Номер позиции первого вхождения символа в строку
Функция - STRRCHR(C: STRING; CH: CHAR): INTEGER - возвращает номер позиции первого вхождения...

[masm32] Поиск и замена первого вхождения символа в строку
Здравствуйте. Господа программисты, есть код написанный мной при помощи masm32 под windows, вот я...

Написать функцию поиска первого вхождения подстроки 2 в строку 1
Помогите, пожалуйста, создать функцию - Pos(s,s1). Поиск первого вхождения подстроки s1 в строку s...


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

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

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