Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
buba3230
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
1

Сложение цифр в строке

04.06.2009, 20:29. Просмотров 1542. Ответов 6
Метки нет (Все метки)

нужно ввести строку с 10 символов и если там есть цифры от 1 до 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
37
38
39
40
.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
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2009, 20:29
Ответы с готовыми решениями:

Сложение двух цифр
Необходимо создать программу за вознаграждение! assembler! Программа для операции сложения двух...

Сосчитать количество цифр в строке
подскажите хотя бы как определить,является ли символ числом

Замена десятичных цифр в строке на знак процента
Пробовал написать данную прогу, но TASM выдает ошибку Operand types do not match. Не можете сказать...

Подсчитать количество цифр в четвертой строке файла
Необходимо Подсчитать количество цифр в четвертой строке файла. Содержимое файла: 69.txt 125...

Сложение двух цифр
написал код (только знакомлюсь с ассемблером) .386 .model flat, stdcall .data x dd 10 y dd...

6
Goodwin98
2522 / 818 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
04.06.2009, 22:47 2
Да уж. Может быть должно быть так.
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
.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
1
buba3230
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
04.06.2009, 22:53  [ТС] 3
а вывод суммы ? )))
0
Goodwin98
2522 / 818 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
04.06.2009, 23:08 4
Тогда так
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
42
43
44
45
46
47
48
49
50
.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
    mov s,bl
        
    mov al, bl ; Это число которое нужно перевести
    mov cx, 10
    div cl
    add ax,'00'
    xchg bx,ax
    mov dl,bh
    mov ah,02
    int 21h
    mov dl,bh
    int 21h
    mov ax, 4c00h
    int 21h
end start
1
buba3230
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
04.06.2009, 23:26  [ТС] 5
она сумму неправильно считает

Добавлено через 2 минуты 16 секунд
а что ето ? за перевод ?

mov al, bl ; Это число которое нужно перевести
mov cx, 10
div cl
add ax,'00'
xchg bx,ax
mov dl,bh
mov ah,02
int 21h
mov dl,bh
int 21h
mov ax, 4c00h
int 21h

Добавлено через 4 минуты 29 секунд
считает неправильно ))
0
Goodwin98
2522 / 818 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
04.06.2009, 23:47 6
Последний вариант
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
.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
1
buba3230
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
05.06.2009, 00:08  [ТС] 7
ОГРОМНЕЙШЕЕ СПАСИБО!!!!!!

Добавлено через 12 минут 2 секунды
теперь все это дело нада сделать через процедуру.... и еще одну такую прогу через макрос )))) но это уже завтра )))
0
05.06.2009, 00:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2009, 00:08

[tasm] Замена цифр в строке
Что нужно поменять в коде (кроме того что в апострофах), чтобы программа могла заменять числа? mov...

Посчитать количество цифр в строке
Помогите с ассемблером! Как посчитать количество цифр в строке? 3 день сижу... ничего не получается!

Сумма цифр, введенных в строке
Разработать программу на языке Ассемблера Intel x86 для ОС MS-DOS. Модель памяти – не...


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

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

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