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

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

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

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

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

Результаты опроса: Поможете?
Да 1 50.00%
Нет 1 50.00%
Поржу с тебя и пойду 1 50.00%
Посочувствую и пойду 1 50.00%
другое... 2 100.00%
Опрос с выбором нескольких вариантов ответа. Голосовавшие: 2. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2011, 15:20   #1
OtshelNik
 
Регистрация: 15.06.2011
Сообщений: 5
По умолчанию модульное программирование

Доброе время суток! Помогите, пожалуйста. Нужно написать прогу, к-рая в строке найдет количество слов больше последнего. Вот код:
Lr3.asm
Код:
data segment para public 'data'
	buf				db 40, ?, 40 dup("$")
	
	textinput			db	"Stroka: $"
	
	;PrintStrNumber 		db	?
	Enters	db	0DH,0AH
	textoutnumber		db	"Kolichestvo slov bolshe poslednego:", 0ah,0dh, "$"
	Negate dw ?
data ends

stk segment stack
	db 256 dup ("?")
stk ends

code segment para public 'code'
	assume cs:code, ds:data, ss:stk
Extrn proc1:far
 start:
	mov ax,data
	mov ds,ax
;text of programm
	
	mov dx, offset textinput
	call WrStr

	mov ah, 0ah
	lea dx, buf ;vvod stroki
	int 21h
	push dx
	call proc1
	
	mov dx, offset Enters
	call WrStr
	
	
	pop ax

	call StrCon

	mov ah, 4Ch
	int 21h
	
WrStr proc near
    mov ah,09h
    int 21h
    ret
WrStr endp

StrCon proc near
...
     ret                                ; Возврат из процедуры
StrCon endp
	
	
code ends
end start
new.asm
Код:
data segment para public 'data'
kolLStr				db	0
	kolStr				db	0
	counter				db	0
data ends

stk segment stack
	db 256 dup ("?")
stk ends

code segment para public 'code'
	assume cs:code, ds:data, ss:stk

public proc1
proc1 proc far

mov si, 29h ; max index dlya hod`by po masivy
	
	mov kolStr, 0; dlina poslednego - 1

	std 	;znachenie si budet umenshat`sya
	
for1:		; otmeryaem slovo
	lodsb
	cmp al, 24h
	je prov 
	cmp al, 0dh
	je prov
	cmp al, ' ' ;esli znak != probel
	jne notequal1
	jmp endfor1
	
notequal1:		
	inc kolStr	; uvelichivaem kolichestvo symbolov
	jmp prov	;idem dal`she
	
endfor1:
	cmp kolLStr, 0
	je ravn			; esli v posl stroke 0, to prisvaivaem i idem dalshe
	
	cmp kolStr, 0; if u nas '  '
	je prov		 ; idem dal`she
	;else
	mov al, kolLStr
	cmp al, kolStr	;sravnivaem s dlinoy poslednego
	jl	countup
	mov kolStr, 0
	jmp prov
	
countup:
		inc counter	; counter++
		mov kolStr, 0
		jmp prov

ravn:	; esli v posl stroke 0, to prisvaivaem i idem dalshe
	mov al, kolStr
	mov kolLStr, al; zabivaem dlinu posl slova
	mov kolStr, 0	; obnulyaem chetchik dliny
	jmp prov
	
prov:				; proveryaem na konec stroki
	cmp si,2
	jl endprogram	; if <0 ->end
	jmp for1		; else goto for1
	
	
	
endprogram:
	mov al, kolStr
	cmp al, kolLStr	;sravnivaem s dlinoy poslednego pervoe
	jg M1
	jmp M2
M1:	
	inc counter
M2:

mov al, counter
mov ah, 0
push ax
ret
proc1 endp
end
В батнике записано:
Do_New.bat
Код:
masm new, new, new;
Do_Lr3.bat
Код:
masm lr3, lr3, lr3;
link lr3.obj + new.obj, lr3.obj + new.obj;
pause;
При компилировании ошибок вроде как нет, но при линковке выдает ошибку, что не может найти выходной файл(или что-то такое). Подскажите, в чем ошибка, пожалуйста, завтра сдавать!

Последний раз редактировалось OtshelNik; 15.06.2011 в 15:56.
OtshelNik вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
модульное программирование в C++ Galdenysh Помощь студентам 0 31.05.2010 18:21
Модульное программирование Solution Machine Microsoft Office Excel 2 21.12.2009 15:13
Модульное программирование Marinka91 Помощь студентам 3 28.06.2009 20:16
модульное программирование Prestigio Общие вопросы C/C++ 2 28.06.2008 09:12
модульное программирование, С++ Stiker Помощь студентам 1 09.12.2007 21:38