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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2012, 00:49   #1
MariaMS
Новичок
Джуниор
 
Регистрация: 12.04.2012
Сообщений: 2
По умолчанию Accembler, сравнение

Помогите найти ошибку

Программа: Ввости с клавиатуры две строки, сравнить будут ли они равны или нет
Равенство вроде работает, а если ввожу разные символы(буквы, цифры) пишет все-равно "равны"
Помогите!

Код:
DOSSEG
MODEL       small
STACK       100h

.data

;stroki , kotorqe sravnivaem
stroka1	db	10,13,'Pervaja stroka: $'
stroka2	db	10,13,'Vtoraja stroka: $'
;dva buffera vvoda
vvod1 label byte
max_p1	 db 50
fakt_p1  db ?
txtBuff1 db 50 dup(?)

vvod2 label byte
max_p2	 db 50
fakt_p2  db ?
txtBuff2 db 50 dup(?)

v  db 0ah,0dh,'Ravnq','$'
n  db 0ah,0dh,'Ne ravnq','$'


.code
 ASSUME     ds:@data,es:@data      
 main:
    mov     ax,@data        ;zapominaet adress dannqh
    mov     ds,ax
    mov     es,ax   

;pechataet ima i gruppu
	mov dx,offset pea
	mov ah,9
	int 21h

;vqvod na ekran pervoj stroki
	mov dx,offset stroka1
	mov ah,9
	int 21h

;buffer vvoda
	mov dx,offset vvod1
	mov ah,10
	int 21h

;vqvod na ekran vtoroj stroki
	mov dx,offset stroka1
	mov ah,9
	int 21h


	mov dx,offset vvod2
	mov ah,10
	int 21h


;sravnivaem storki v porjadke vozrastanija

    cld
    lea     si,fakt_p1      ;zanosim v registr si
    lea     di,fakt_p2      ; zanosim v di
    mov     cx,?   ;dlina stroki dlja repe

cycl:

    	repe cmps R,R2
	jcxz eql ;esli ravnq
	jmp no_eq ;esli ne ravnq

eql: ;teade kokku langevatest ridadest
	mov ah,09h
	lea dx,v
	int 21h 
	jmp exit 
no_eq: ;ne ravnq
	mov ah,09h
	lea dx,n
	int 21h 
;pri neobhodimosti vernutsja na edinicu nazad, nuzno pomenjat registrq si i di
MariaMS вне форума Ответить с цитированием
Старый 05.06.2012, 11:31   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

у меня ваш пример вообще отказался компилироваться...

чуток подправил. вроде работает..
Код:
DOSSEG
MODEL       small
STACK       100h

.data

pea db      10,13,'Программа сравнения строк.',10,13,'Выполнил: Пупкин А.С. $'
;stroki , kotorqe sravnivaem
stroka1 db      10,13,'Pervaja stroka: $'
stroka2 db      10,13,'Vtoraja stroka: $'
;dva buffera vvoda
vvod1 label byte
max_p1   db 50
fakt_p1  db ?
txtBuff1 db 50 dup(?)

vvod2 label byte
max_p2   db 50
fakt_p2  db ?
txtBuff2 db 50 dup(?)

v  db 0ah,0dh,'Ravnq','$'
n  db 0ah,0dh,'Ne ravnq','$'


.code
 ASSUME     ds:@data,es:@data      
 main:
    mov     ax,@data        ;zapominaet adress dannqh
    mov     ds,ax
    mov     es,ax   

;pechataet ima i gruppu
        mov dx,offset pea
        mov ah,9
        int 21h

;vqvod na ekran pervoj stroki
        mov dx,offset stroka1
        mov ah,9
        int 21h

;buffer vvoda
        mov dx,offset vvod1
        mov ah,10
        int 21h

;vqvod na ekran vtoroj stroki
        mov dx,offset stroka2
        mov ah,9
        int 21h


        mov dx,offset vvod2
        mov ah,10
        int 21h


;sravnivaem storki v porjadke vozrastanija

    cld
    lea     si,fakt_p1      ;zanosim v registr si
    lea     di,fakt_p2      ; zanosim v di
    mov     ch,0
    mov     cl,byte ptr fakt_p1 ;dlina stroki dlja repe
    test    cx, cx
    jnz     cycl
    mov     ch,0
    mov     cl,byte ptr fakt_p2 ;dlina stroki dlja repe


cycl:
    cld
    repe cmps fakt_p1, fakt_p2
    jne no_eq ;esli ne ravnq

;esli ravnq
eql: ;teade kokku langevatest ridadest
    mov ah,09h
    lea dx,v
    int 21h 
    jmp exit 
no_eq: ;ne ravnq
        mov ah,09h
        lea dx,n
        int 21h 
exit:
        mov     ax, 4c00h
        int     21h
end                     main                    ;конец программы

Последний раз редактировалось Serge_Bliznykov; 05.06.2012 в 12:01.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Accembler,сложение и сумма MariaMS Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 04.06.2012 01:50
Сравнение SeMgA Общие вопросы Delphi 4 08.05.2012 17:29
сравнение tanyuxxxa Помощь студентам 3 03.03.2012 14:50
Очень надо написать легкую програмку accembler Павел233 Помощь студентам 2 14.01.2012 12:23
сравнение slavsmo Microsoft Office Excel 2 05.04.2010 17:51