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

Есть программа которая сравнивает строки. Нужно вывести заданные строки и результат на консоль (TASM)

27.03.2014, 19:11. Просмотров 853. Ответов 5
Метки нет (Все метки)


Есть программа которая сравнивает строки. Нужно вывести заданные строки и результат на консоль.У меня что-то не получается. Исправьте, пожалуйста.
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
.model tiny
.data
stroka1 db 'abcdefkl' ;
stroka2 db 'dcablkfe' ;
endstroka db '1'
.code
org 100h
.startup
   mov ax,@data
   mov ds,ax
 
   lea si,stroka1
   lea di,stroka1
 
@: mov al,byte ptr [si]
   mov ah,byte ptr [di]
   cmp al,0dh
   je endstr
   cmp ah,0dh
   je endstr
   cmp al,ah
   je @@
   inc si
   inc di
   jmp @
@@:mov dl,al
   mov ah,2
   int 21h
   jmp exit
endstr: lea dx,endstroka
   mov ah,9
   int 21h
 
exit:mov ax,4c00h
     int 21h
end
Добавлено через 1 минуту
И скинь пару книг по intel 8086 tasm с примерами желательно, если такие книги есть.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2014, 19:11
Ответы с готовыми решениями:

Написать программу с использованием функции, которая сравнивает две строки, заданные в качестве её аргументов
Написать программу с использованием функции, которая сравнивает две строки, заданные в качестве её...

Есть простой масив, на 20 карточек, мне нужно вывести результат в 2 строки по 10 карточек
Дообры день. Есть простой масив, на 20 карточек, мне нужно вывести результат в 2 строки по 10...

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

Составить подпрограмму, которая сравнивает две строки
Составить подпрограмму, которая сравнивает две строки и соответствующим образом устанавливает РР и...

5
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
27.03.2014, 20:21 2
Это MS-DOS, мать его, в конце строги должен быть символ "$", вот так:

Assembler
1
stroka1 db 'abcdefkl$' ;
Развертка цикла мне тоже не нравится, для сравнения символов лучше воспользоваться примерно следующим кодом:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@@:
mov al,byte ptr [si]
mov ah,byte ptr [di]
Inc si
Inc di
 
Cmp al,'$'
Jz exit
Cmp ah,al
jz @f
 
 
repscan:
Inc byte ptr [cont]
Jmp @f
 
 
cont db 0
0
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 170
27.03.2014, 20:51  [ТС] 4
Naydli, ну пусть будет так, только комментарии допишите пожалуйста)
Charles Kludge, спасибо
0
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
27.03.2014, 20:59 5
iFlash,

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
.model tiny
.data
stroka1 db 'abcdefkl$' ;
stroka2 db 'dcablkfe$' ;
endstroka db '0'
.code
org 100h
.startup
 
   mov ax,@data
   mov ds,ax
 
   lea si,stroka1
   lea di,stroka1
 
@@: mov al,byte ptr [si]         ;Сравнение строк
   mov ah,byte ptr [di]
   cmp al,'$'
   jz endstr
 
   cmp al,ah
   jz @f   ;Если совпало
 
   inc si
   inc di
   jmp @b
 
@@:
  Inc byte ptr [endstroka]
  mov dl,al
   mov ah,2
   int 21h
   jmp exit
 
endstr: lea dx,endstroka ;Вывод результата
   mov ah,9
   int 21h
 
exit:mov ax,4c00h
     int 21h        ;Выход
end
Дальше исправлять не могу, пишу не под RM, не под MS-DOS и компилятор другой.
0
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 170
28.03.2014, 03:37  [ТС] 6
Naydli, а ту часть кода, которую вы изменили, можно вставить в основной код, оно будет работать?

Добавлено через 17 минут
Блин, куча разной похожей инфы, разных книг, и не понятно подойдет оно мне или нет (для 8086)

Добавлено через 6 часов 17 минут
А как сделать задержку на консоли?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2014, 03:37

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

Составить подпрограмму, которая сравнивает две строки
Составить подпрограмму, которая сравнивает две строки.

Программа сравнивает строки ищет одинаковые слова
Помогите пожалуйста) Программа сравнивает строки ищет одинаковые слова (по идее:)) var...

Программа, которая делит числа и выводит результат в консоль
Есть у кого-нибудь пример программы, которая делит числа и выводит результат в консоль? Например:

Составить функцию совпадает,которая сравнивает две строки, игнорируя пробелы
Составить функцию совпадает,которая сравнивает две строки, игнорируя пробелы. uses crt; function...


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

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

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