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

Записать результат в массив

20.11.2015, 17:12. Показов 13912. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача такова есть массив, нужно все элементы поделить на 7, а остатки деления записать в новый массив. У меня все получается до деления, т.е. после выполнения команды DIV BX(В ней храниться 7) после этого у меня не получается реализовать чтобы записывало в новый массив с последующим выводом на экран, кто подскажет буду очень благодарен
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.11.2015, 17:12
Ответы с готовыми решениями:

Прибавить к элементам массива A единицу и записать результат в массив B
Всем привет. Есть такое задание: "Дан массив А типа byte. Прибавить к элементам массива A единицу и записать результат в массив B." ...

Как записать в массив результат запроса если результат-массив данных а не 1 значение
Здравствуйте , подскажите пож-та как организовать в 2010-ом бэйсике работу с запросами, возвращающими большой массив данных из бд Access...

Как проверить двумерный массив на упорядоченность и результат записать в новый массив?
Задание звучит так: Задать рандомный массив А. Проверить строки массива А на упорядоченность по возрастанию и результат записать в массив...

7
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
21.11.2015, 11:02
prostou,
показывай свою программу, тогда и подскажем
0
0 / 0 / 0
Регистрация: 25.10.2015
Сообщений: 11
22.11.2015, 10:31  [ТС]
Говорю сразу, написано коряво, потому что особых знаний нет, так поверхностно:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
       .MODEL SMALL
       .STACK 256
       .DATA 
      MAS_A     DW  5, 10, 5, 15, 20
      X DW 5  
      Mas_R  DW 5 Dup(?) 
                                                                                                                                                                                 
;-------------------------------------------------------------------------------------------------------
.CODE                                                    
        START:    MOV AX, @DATA                               
                 MOV DS, AX                                          
                 LEA SI, MAS_A 
         LEA DI, Mas_R                              
                 XOR DX, DX                    
                 MOV AX,[SI]
                M_1: DIV X
        MOV  DI,AX                                              
                 INC SI                                                                                                                 
                 LOOP M_1
                 MOV DX, offset Mas_R
                 MOV AH, 09
                 INT 21h
END  START
До строчки MOV AX,[SI] все считает правильно,хотя тут я писал для записи результата деления, а после прочтения задания понял, что по-моему мне надо записать в массив остаток результата деления( значит деление не нацело надо брать=>массив такой задать,но это не сложно, вот как записать в массив и вывести...) писал TASM

Добавлено через 57 секунд
Цитата Сообщение от Mikl___ Посмотреть сообщение
показывай свою программу, тогда и подскажем
выше
0
780 / 412 / 75
Регистрация: 29.03.2013
Сообщений: 849
22.11.2015, 11:35
prostou, остаток от деления будет находиться в DX, а не в AX (в нём будет частное). Обнуление DX внеси в цикл перед делением, и помещение в AX делимого тоже не забудь в цикл включить. Увеличивать индексный регистр нужно на 2, т.к. слово занимает два байта. И где увеличение DI? И сохраняешь результат не в память, адресуемую регистром DI, а в регистр. И делишь на 5 а не на 7. Перед началом цикла в CX число повторений занести надобно.
0
0 / 0 / 0
Регистрация: 25.10.2015
Сообщений: 11
23.11.2015, 11:22  [ТС]
Цитата Сообщение от Argogo Посмотреть сообщение
И сохраняешь результат не в память, адресуемую регистром DI, а в регистр.
Я сделал все,как вы сказали и да. стало все работать: правильно считать и т.д. но я не понял в какой регистр сохранять остаток,чтобы в дальнейшем передать его в массив или может можно сразу в массив

Добавлено через 14 минут
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
.MODEL SMALL
       .STACK 256
       .DATA 
      MAS_A     DW  5, 10, 13, 15, 20
      X DW 5  
      Mas_R  DW 5 Dup(?) 
                                                                                                                                                                                 
;-------------------------------------------------------------------------------------------------------
.CODE                                                    
        START:    MOV AX, @DATA                               
                 MOV DS, AX 
         XOR SI,SI
         XOR DI,DI                                         
                 LEA SI, MAS_A 
         LEA DI, Mas_R                              
                 MOV CX, 5                    
            @M_1:XOR DX,DX
         MOV AX,[SI]
                 DIV X
         MOV  [Mas_R[DI]],DX                                              
                 INC SI 
         INC SI
         INC DI
         INC DI                                                                                                                
                 jns @M_1
                 MOV AH, 09
                 INT 21h
         MOV AX, 4C00h
         INT 21h
END  START
Получилось так,но нужно разобраться с DI и вывести после полученный массив на экран, потому что у меня DI дважды переписывает в ходе выполния программы

Добавлено через 41 минуту
еще нашел такую штуку, отредактировал под себя, но почему он мне выдает 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
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
       .MODEL SMALL
       .STACK 256
       .DATA 
      MAS_A     DW  5, 10, 13, 15, 20
      X DW 5  
      Mas_R  DW 5 Dup(?) 
Y_ASCII  DB 5 DUP(?)    ;переменная для хранения символов
SIGN         DB (?)
                                                                                                                                                                                 
;-------------------------------------------------------------------------------------------------------
.CODE 
PREOBR  PROC            ;процедура преобразования числа в ASCII
          MOV   AX, BX          ; в регистр АХ число
          MOV   SIGN, ' '           ;пробел(знак +) в переменную
          CMP   AX, 0           ;сравнить с 0
          JNS   M_1         ;если >=0 в M_1
          MOV   SIGN, '-'       ;иначе знак -
          NEG   AX          ;преобразовать в прямой код  
;------------------------------------------------------------------------------------------------------------
M_1:  XOR   CX,  CX             ;подпрограмма М_1
          MOV   BX, 10          ;делитель =10
M_2:  XOR  DX, DX           ;подпрограмма М_2
          DIV   BX          ;делим на 10
          PUSH DX           ;остаток помещаем в стэк
          INC       CX          ;СХ++
          CMP   AX, 0           ;если АХ<>0
          JNE   M_2             ;повторить деление
;------------------------------------------------------------------------------------------------------------
      XOR   SI, SI          ;очистить SI
      MOV   AL,  SIGN       ; в AL знак
      MOV   Y_ASCII[SI], AL     ;переслать знак в Y_ASCII
      INC   SI          ;SI++
M_3:  POP   AX          ;извлечь из стэка
      ADD   AL, 30h             ;вычисление ASCII кода для цифры
      MOV   Y_ASCII[SI] ,AL     ;переслать ASCII код в Y_ASCII
      INC   SI          ;SI++
    LOOP    M_3             ;если CX<>0 - повторять цикл
      MOV  Y_ASCII[SI], '$'     ;символ конца строки в Y_ASCII
RET                 ;возврат из процедуры
PREOBR  ENDP            ;завершение процедуры                                                    
        START:    MOV AX, @DATA                               
                 MOV DS, AX 
         XOR SI,SI
         XOR DI,DI                                         
                 LEA SI, MAS_A                               
                 MOV CX, 5                    
            @M_1:XOR DX,DX
         MOV AX,[SI]
                 DIV X
         MOV  [Mas_R[SI]],DX                                              
                 INC SI 
         INC SI                                                                                                                
                 jns @M_1
        MOV DI,00h
        MT2:MOV BX, Mas_R[DI]
        CALL PREOBR 
        MOV DX, OFFSET Y_ASCII
                 MOV AH, 09
                 INT 21h
        INC DI
        INC DI
        CMP DI,10
        JB MT2
         MOV AX, 4C00h
         INT 21h
END  START
Добавлено через 19 часов 4 минуты
Цитата Сообщение от Mikl___ Посмотреть сообщение
показывай свою программу, тогда и подскажем
помогите найти ошибку сдать нужно через день
0
780 / 412 / 75
Регистрация: 29.03.2013
Сообщений: 849
24.11.2015, 06:00
prostou, как-то так:
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
.MODEL  SMALL
.STACK  256
.DATA
    MAS_A   DW  5, 10, 13, 15, 20
    X   DW  7
    Mas_R   DW  5 Dup(?)
 
;-------------------------------------------------------------------------------------------------------
.CODE
START:
    MOV AX, @DATA
    MOV DS, AX
 
    LEA SI, MAS_A
    LEA DI, Mas_R
    MOV CX, 5
@M_1:
    XOR DX, DX
    MOV AX, [SI]
    DIV X
    MOV [DI], DX                                              
    INC SI
    INC SI
    INC DI
    INC DI
    loop    @M_1
    MOV AH, 09
    INT 21h
    MOV AX, 4C00h
    INT 21h
    END START
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
24.11.2015, 08:42
prostou,
или так
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
.MODEL  SMALL
.STACK  256
.DATA
    MAS_A   DW  5, 10, 13, 15, 20
    X   DW  7
    Mas_R   DW  5 Dup(?) 
;-------------------------------------------------------------------------------------------------------
.CODE
START:MOV AX, @DATA
    MOV DS, AX
    mov es,ax
 
    LEA SI, MAS_A
    LEA DI, Mas_R
    MOV CX, 5
@M_1:
    XOR DX, DX
    lodsw;MOV AX, [SI]  SI:=SI+2
    DIV X
    mov ax,dx
    stosw;MOV [DI], AX   DI:=DI+2                                          
    loop    @M_1
    MOV AH, 9
    INT 21h
    MOV Ah, 4Ch
    INT 21h
    END START
0
780 / 412 / 75
Регистрация: 29.03.2013
Сообщений: 849
24.11.2015, 17:46
Цитата Сообщение от Mikl___ Посмотреть сообщение
или так
я б туда ещё CLD на всякий случай вставил бы, в начало.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.11.2015, 17:46
Помогаю со студенческими работами здесь

Вычислить y= k14− 18 k для 6 значений k, вводимых с клавиатуры. Результат вычислений записать в массив. Полученный массив отсортировать по возрастанию
#include&lt;iostream&gt; #include&lt;math.h&gt; #include&lt;iomanip&gt; using namespace std; double const n=20; int vvod( double y, int n) { ...

Записать результат foreach в массив
Подскажите, как можно записать в массив рандомный результат из foreach, чтобы в дальнейшем сделать например сортировку, и.т.д. ...

Результат выборки записать в массив
Есть запрос: ADOQuery1-&gt;Close(); ADOQuery1-&gt;SQL-&gt;Clear(); ADOQuery1-&gt;SQL-&gt;Add(&quot;SELECT Name_Proj, Start_Proj,Finish_Proj FROM...

Записать результат в одномерный массив
Помогите пожалуйсята, есть программа которая находит числа равные кубами своих цифр. Как записать эти числа (x) в одномерный массив? ...

Записать результат запроса к БД SQLite в массив
Здравствуйте! Я разрабатываю приложение на Windows 8. К сожалению, очень мало документации в инетернете пока, не могла найти ответ на мой...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru