Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 3
1

Вычисление суммы двух массивов байт

14.01.2013, 19:41. Показов 728. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать подпрограмму для вычисления суммы по модулю 2^24 всех элементов некоторого массива байтов без знака. Результат представить в десятичной форме.
С помощью этой подпрограммы обработать два массива. Для передачи параметров использовать стек.

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
113
114
115
116
Name Program_summa
Data segment
    x1 db 14h, 2h, 3h, 12h, 64h                                 
    mas1_end label word
    len1 = (mas1_end - offset x1)/type x1
    y1 dw 0
    x1_dec db 5 dup (0)
        
    x2 db 8h, 54h, 32h, 5h                  
    mas2_end label word
    len2 = (mas1_end - offset x2)/type x2
    y2 dw 0
    x2_dec db 5 dup (0)
    
Data ends
 
Stack segment
    dw 16 dup (?)
    StkTop label word
Stack ends
 
Code segment
    Assume cs:code, ds:data, ss:stack
Summa proc
    mov bp,sp                       
    mov cx,[bp+2]                   
    mov di,[bp+4]                   
    mov si,[bp+6]               
    xor dx,dx                       
 
M1: mov al,[si]                     
    add [di],al         
    adc dx,0                        
    add si,type x1                  
    loop M1
    
    mov [di+1], dl      
    ret 6
Summa endp
 
gorner proc
    mov bp,sp
    mov si,[bp+4]
    mov bx,[si]
    mov cx,16
g2: 
    mov di,[bp+2]
    shl bx,1
    push cx
    mov cx,5
g1:
    mov al,[di]
    adc al,[di]
    aaa
    mov [di],al
    inc di
    loop g1
    pop cx
    loop g2
    ret 4
gorner endp
 
; Основная программа
 
Start:  
    mov ax,data
    mov ds,ax
    mov ax,stack
    mov ss,ax
    lea sp, StkTop
    
    mov y1, 0
    mov y2, 0                           
    mov word ptr x1_dec, 0
    mov word ptr x1_dec+2, 0
    mov x1_dec+4, 0
    
    mov word ptr x2_dec, 0
    mov word ptr x2_dec+2, 0
    mov x2_dec+4, 0
;Передача параметров через стек:
    lea ax, x1                      
    push ax
    lea ax, y1                      
    push ax
    mov ax,6                        
    push ax
        call Summa
    
    nop
    
    lea ax,y1
    push ax
    lea ax,x1_dec
    push ax
        call gorner
    nop
    nop
    
    lea ax, x2                      
    push ax
    lea ax, y2                      
    push ax
    mov ax,4                            
    push ax
        call Summa
    lea ax,y2
    push ax
    lea ax,x2_dec
    push ax
        call gorner
    
    mov ah, 4ch                     
    int 21h 
Code ends
end Start
В программе только 2 байта под результат (2^16). Как её переделать под 3 байта? (2^24). В один сегмент всё не влезет.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2013, 19:41
Ответы с готовыми решениями:

Вывести на экран результат и сумму первых байт массивов
Прошу помочь с задачей. Знания по ассемблеру очень мало а решения нужно срочно. Зарание благодарен...

Вычисление целочисленного арифметического выражения над элементами двух массивов
Написать программу, в которой зарезервировано четыре слова со значениями: E010h,1E4Ah,2BC7h,B781h и...

Ввод двух массивов, вывод суммы элементов с заданным индексом
Доброго времени суток, нужна помощь в написании программы на TASMе, суть задачи: необходимо ввести...

Вычисление половины суммы двух 3-х байтных шестнадцатеричных чисел
помогите написать программу вычисления половины суммы двух 3-х байтных шестнадцатеричных чисел...

0
14.01.2013, 19:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2013, 19:41
Помогаю со студенческими работами здесь

Сформировать новый массив, элементами которого будут суммы одноименных элементов двух массивов [tasm]
Надо решить задачу Задать с клавиатуры два массива из 10 элементов каждый. Сформировать новый...

Перестановка байт в двух переменных
Ребят, помогите, пожалуйста))) Неправильно выводит комбинацию чисел "После перестановки". Даны две...

Вычисление степени матрицы, вычисления произведения двух матриц, вычисление суммы двух матриц
Здравствуйте, помогите решить, пожалуйста: Заданы две квадратные матрицы А и В. Вычислить матрицу...

Вычисление суммы не используя массивов
Помогите вычислить сумму не используя массива R1=1.01; R2=0.75;...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru