Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
boly@mail.ru
0 / 0 / 0
Регистрация: 22.06.2009
Сообщений: 1
1

Cложение в цикле

25.06.2009, 20:20. Просмотров 1004. Ответов 1
Метки нет (Все метки)

Дали задание:
Есть массив М = {15, 1, 3, 7, -2, 6, 12, 10, 9, 3}, есть функция Y=(m1-m2)x + (m2-m3)2x + ... + (m9 - m10)9x, коэффициент x=2, с клавиатуры вводится, сколько раз складывать (m1-m2)x + (m2-m3)2x + ...
Почти все работает, только неправильно складывает, точнее, правильно складывает первые 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
model small
.data  
mas db 15,1,3,7,-2,6,12,10,9,3,'$'  ;Инициализируем массив. Размер каждого элемента байт
nl db 10, 13, '$'
.stack 256
.code
 
prntn proc
    push ax
    mov ah,09h                  ;110 
    lea dx, nl              ;вывод перевод на новую строчку
    int 21h
   P: 
     mov ah,0   
     pop ax                     ;112
     xor cx,cx 
     XOR dx,dx
     XOR bx,bx
     cmp ax,0
     jnl upper
     NEG ax
     upper:
         xor bx,bx 
         mov bx,000Ah
     dvsn: 
         XOR dx,dx
         div bx
         push dx
         inc cx 
         or ax,ax
         jnz dvsn
     mov ah,02h
     cicl: 
         pop dx
         add dx,30h
         int 21h
         loop cicl
  RET
  prntn endp
 
 
main proc
 
mov ax,@data
mov ds,ax
 
xor ax,ax
xor dl,dl
 
mov ah,1
int 21h
mov dl,al
and ax,0fh
 
 
 
lea bx,mas
 
xor cx,cx
mov cx,ax
mov ax,cx
and ax,0fh
xor ax,ax
push ax
xor dx,dx
mov dx,1
push dx
 
@1: 
    xor dx,dx
    mov ax,[bx]
    
    mov dx,[bx+1] 
        sub ax,dx
    pop dx
    xor bx,bx
    mov bx,dx
    add bx,1
    push ax
    
    xor ax,ax
    mov ax,dx
    mov dx,2
    imul dl
    mov dx,ax
    pop ax
    imul dl
 
    pop dx
    add dx,ax
    push dx
    push bx
    
    ;call prntn
    xor ax,ax
    xor bx,bx
    mov ax,[bx]
    inc bx
    loop @1
 
pop bx
pop ax
call prntn  
 
;xor ax,ax
;mov al, mas
 
mov ax,4c00h
int 21h
 
main endp
end main
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2009, 20:20
Ответы с готовыми решениями:

сумма в цикле
Доброго времени суток! В институте дали такую вот задачу: Вычислить сумму...

Сумма в цикле
Вот такой вопрос возник нужно написать программу которая находит сумму всех...

Вывод в цикле
Нужно ввести "а" и "b" и потом в цикле вывести 3 раза "а" и "b", я сделал ввод...

В цикле вивадыть на екран букву А...
В цикле вивадыть на екран букву А...праграма на Asemb..

Просуммировать последовательность байтов в цикле
Доброе время суток)) Помогите пожалуйста. Дана последовательность байтов...

1
Goodwin98
2522 / 818 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
25.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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
.model small
.data  
mas dw 15,1,3,7,-2,6,12,10,9,3,'$'  ;Инициализируем массив. Размер каждого элемента байт
nl db 10, 13, '$'
count   dw 1
.stack 256
.code
 
prntn proc
    push ax
    mov ah,09h                  ;110 
    lea dx, nl                  ;вывод перевод на новую строчку
    int 21h
   P: 
     mov ah,0   
     pop ax                     ;112
     xor cx,cx 
     XOR dx,dx
     XOR bx,bx
     cmp ax,0
     jnl upper
     NEG ax
     upper:
         xor bx,bx 
         mov bx,000Ah
     dvsn: 
         XOR dx,dx
         div bx
         push dx
         inc cx 
         or ax,ax
         jnz dvsn
     mov ah,02h
     cicl: 
         pop dx
         add dx,30h
         int 21h
         loop cicl
  RET
  prntn endp
 
 
main proc
 
mov ax,@data
mov ds,ax
 
mov ah,1
int 21h
and ax,0fh
 
mov cx,ax
xor ax,ax
push ax
lea  si,mas
 
@1:     
        mov bx,[count]
        dec bx
        add bx,bx
 
        mov ax,[si+bx]
        mov dx,[si+bx+2] 
        sub ax,dx
        push ax
        
        xor dx,dx
        mov ax,[count]
        mov bx,2
        imul bx
 
        pop bx
        imul bx
 
        inc [count]
         pop bx
        add bx,ax
        push bx
        loop @1
 
pop ax
call prntn      
 
mov ax,4c00h
int 21h
 
main endp
end main
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2009, 22:47

Пауза в цикле на Ассемблер (MASM)!
Ребята, не могли бы подсказать или дать на водку. Как сделать в бесконечном...

Используя цикл в цикле, вывести на экран прямоугольник чисел
2. Используя цикл в цикле, вывести на экран следующий прямоугольник чисел: ...

В цикле сложить содержимое двух массивов и передать в третий
Люди, срочно нужна прога для экзамена!!!! Помогите, пожалуйста))) Определить...


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

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

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