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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2009, 20:27   #1
buba3230
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 22
Восклицание сложение цифр в строке от 1 до 5

нужно ввести любую строку с 10 символов, и если там есть цифры от 1 до 5 то их нада сложить...

помогите исправить ошибки)))

Код:
model	small
stack	100h
.data
	str	db   10 dup('$')
	len_str=$-str-1
	s	db ?
.code
	mov	ax, @data
	mov	ds, ax
	mov	es, ax
	xor	bl,bl
	
	mov	ah,3fH
	mov	bx,0
	mov	cx,10
	mov	dx,offset str
	int	21H
	
        lea	si,str
	mov	cx,len_str
c1:	mov	al,[si]
	cmp	al,'1'
	je	m1
	cmp	al,'2'
	je	m1
	cmp	al,'3'
	je	m1
	cmp	al,'4'
	je	m1
	cmp	al,'5'
	je	m1
m1:	add	bl,al
	mov	s,bl
	loop	c1


		
	mov	s, 4ch
	int	21h
end

Последний раз редактировалось rpy3uH; 04.06.2009 в 20:55.
buba3230 вне форума Ответить с цитированием
Старый 04.06.2009, 21:11   #2
buba3230
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 22
По умолчанию

вариант 2... уже чтото выводит )))

Код:
model	small
stack	100h
.data
	str	db   10 dup(?)
	mesg	db   "Summa ot 1 do 5  "
	s	db   ?
.code
	mov	ax, @data
	mov	ds, ax
	mov	es, ax

	xor	bl,bl
	
	mov	ah,3fH
	mov	bx,0
	mov	cx,10
	mov	dx,offset str
	int	21H
	
        lea	si,str
	mov	cx,10
	cld
c1:	mov	al,[si]
	cmp	al,'1'
	je	m1
	cmp	al,'2'
	je	m1
	cmp	al,'3'
	je	m1
	cmp	al,'4'
	je	m1
	cmp	al,'5'
	je	m1
m1:	add	bl,al
	mov	s,bl
	inc 	si
	loop	c1
	
	mov	ah,09h
	mov	dx,offset mesg
	int	21h

	mov 	ah, 06h               
	mov 	dl,s
	int 	21h        ; Вывод результата
		
	mov	ah, 4ch
	int	21h
end
но не то )))

Последний раз редактировалось rpy3uH; 05.06.2009 в 07:57.
buba3230 вне форума Ответить с цитированием
Старый 04.06.2009, 22:54   #3
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Да уж. Может быть должно быть так.
Код:
.186
.model small
.stack 100h
.data
strq db 10 dup('$')
len_str=$-strq-1
s db ?
.code
start:
	mov ax, @data
	mov ds, ax
	mov es, ax
	xor bl,bl
	
	mov ah,3fH
	mov bx,0
	mov cx,10
	mov dx,offset strq
	int 21H
	
	lea si,strq
	mov cx,len_str
c1:
	mov al,[si]
	sub al,'0'
	cmp al,5
	jg m1
	add bl,al
m1:
    inc si
    loop c1
    
    mov dl,0ah
	mov ah,2
	int 21h
    xor dx,dx
l5:
	cmp bx,100
	jb l6
	sub bx,100
	inc dx
	jmp l5
l6:
	add dl,30h
	mov ah,2
	int 21h
	xor dx,dx
	
l7:
	cmp bx,10
	jb l8
	sub bx,10
	inc dl
	jmp l7
l8:
	add dl,30h
	mov ah,2
	int 21h
	
	mov dl,bl
	add dl,30h
	mov ah,2
	int 21h

mov ax, 4c00h
int 21h
end start
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 04.06.2009 в 23:37.
Goodwin98 вне форума Ответить с цитированием
Старый 04.06.2009, 22:59   #4
buba3230
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 22
По умолчанию

можно вопрос ?
Код:
l5:
	cmp bx,100
	jb l6
	sub bx,100
	inc dx
	jmp l5
l6:
	add dl,30h
	mov ah,2
	int 21h
	xor dx,dx
	
l7:
	cmp bx,10
	jb l8
	sub bx,10
	inc dl
	jmp l7
l8:
	add dl,30h
	mov ah,2
	int 21h
	
	mov dl,bl
	add dl,30h
	mov ah,2
	int 21h
что это за код ? че он делает ? ниче в нем не пойму (((

Последний раз редактировалось rpy3uH; 05.06.2009 в 07:58.
buba3230 вне форума Ответить с цитированием
Старый 04.06.2009, 23:09   #5
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Цитата:
что это за код ? че он делает ?
Это был код, который переводит число в строку. Я его уже поменял на др. покомпактнее.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 04.06.2009, 23:31   #6
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

Цитата:
Сообщение от Goodwin98 Посмотреть сообщение
Да уж. Может быть должно быть так.
Код:
	lea si,strq
	mov cx,len_str
c1:
	mov al,[si]
	sub al,'0'
	cmp al,5
	jg m1
	add bl,al
m1:
	inc si
	loop c1
по-моему тогда все коду =<35h попадут и более 127 т.к знаковое сравнение
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 04.06.2009, 23:35   #7
buba3230
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 22
По умолчанию

ну вот я так с самого начала делал.... потом вводил строку 1q2w3e4r5t
должно вывести результат 15..... а выводило 2 (((
buba3230 вне форума Ответить с цитированием
Старый 04.06.2009, 23:45   #8
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Цитата:
по-моему тогда все коду =<35h попадут и более 127 т.к знаковое сравнение
Просто я думал, что туда ставить пробел или кирилицу не будут.
Цитата:
ну вот я так с самого начала делал.... потом вводил строку 1q2w3e4r5t
должно вывести результат 15..... а выводило 2 (((
А это она нормально просчитывает.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 04.06.2009, 23:48   #9
buba3230
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 22
По умолчанию

как нормально??? должно дать 15 а дает 2... обьясни если можеш )
я видь только учусь )
buba3230 вне форума Ответить с цитированием
Старый 04.06.2009, 23:53   #10
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Скопируй код еще раз отсюда, а то я его менял пару раз. Ты наверно копировал между этими разами.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск последовательности цифр в строке mmx310 Microsoft Office Excel 14 05.02.2009 11:19
Натуральное число, в записи которого п цифр, называется числом Армстронга, если сумма его цифр, возведенн OTLi4HO Общие вопросы C/C++ 6 14.01.2009 19:48
написать программу, которая считает количество цифр в введенной строке 111111 Общие вопросы C/C++ 2 17.12.2008 11:30
сложение цифр densan Помощь студентам 9 19.10.2008 12:06
Сложение Droid Общие вопросы Delphi 14 07.05.2008 13:23