Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/22: Рейтинг темы: голосов - 22, средняя оценка - 4.55
home_girl
1

Скопировать данные из одного массива (1000 элементов) в другой

19.12.2010, 21:26. Просмотров 4431. Ответов 5
Метки нет (Все метки)


вот есть код. само задание: скопировать данные из одного массива(1000 элементов) в другой.
прога компилируется, а потом сразу же выкидывает. выделяет строку rep movsb. почему оно не работает?
C++
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
# include <iostream.h>
# include <conio.h>
# include <stdlib.h>
# include <iomanip.h>
 
void main()
{
  srand( (unsigned)time( NULL ) );
 
   int mas1[1000];
   int mas2[1000];
   int i;
   for (i=0; i<1000;i++)
   {
    mas1[i]=(rand()%100+1);
   }
 
   _asm
{
   mov esi, mas1
   mov edi, mas2
   mov ecx, 1000
   rep movsb // эту строку не воспринимает
   }
 
   for (i=0;i<1000;i++)
   cout<<"mas1["<<i<<"] = "<<mas1[i]<<"\t"<<"mas2["<<i<<"] = "<<mas2[i]<<"\n";
   cout.flush();
   getch();
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2010, 21:26
Ответы с готовыми решениями:

Как скопировать ИНДЕКСЫ четных элементов из одного массива в другой?
нужны индексы четных элементов, а не сами четные элементы. элементы первого массива сгенерированы...

Скопировать данные из одного файла в другой
&amp;НаКлиенте Процедура ip(Команда) ПолноеИмяФайла = &quot;input.txt&quot;; ВыбранныйФайл = Новый...

Скопировать данные из одного StringGrid-а в другой
Создаю несколько стринггридов (step1, step2, step3) каждый из которого заполняется данными из...

Скопировать данные из одного StringGrid-а в другой
Добрый день, столкнулся с небольшой проблемкой, надо скопировать данные из StringGrid1 в...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
5
Ушел с форума
Автор FAQ
14177 / 7061 / 831
Регистрация: 11.11.2010
Сообщений: 12,669
20.12.2010, 04:08 2
home_girl,
1) замени mov esi, mas1 / mov edi, mas2 на lea esi, mas1 / lea edi, mas2
2) так как массивы объявлены как int а ты пересылаешь байты командой movsb то у тебя скопируется только 250 первых элементов нужно либо movsd либо mov ecx, 4000
0
2 / 2 / 0
Регистрация: 20.04.2011
Сообщений: 16
20.04.2011, 11:41 3
здравствуйте! Помогите, пожалуйста!
было задание - переместить массив с адреса 0000Н по адрес 01FFh на адрес 8000 и дальше,
очень нужно сделать с использованием стека, причем, надо предусмотреть, чтобы поиск конца массива производился в подпрограмме и перед выполнением программы сохранить все регистры микропроцессора в стеке и восстановить их после выполнения программы в исходное состояние.
в общем вот прога без стека, правильная
http://narod.ru/disk/101089660... 1.doc.html
а вот со стеком, неправильно написала, проверьте, пожалуйста
http://narod.ru/disk/106543090... A.doc.html
помогите исправить, пожалуйста
0
Ушел с форума
Автор FAQ
14177 / 7061 / 831
Регистрация: 11.11.2010
Сообщений: 12,669
20.04.2011, 12:03 4
Prutvel, а в текст сообщения программу было сложно вставить? Зачем мне ради двух строчек лезть на файлообменник и скачивать непонятно что?
0
2 / 2 / 0
Регистрация: 20.04.2011
Сообщений: 16
20.04.2011, 13:44 5
нет, не трудно конечно, вот программка без стека

Адрес Код Метка Мнемоника
8200 210000 LXI H, 0000H
8203 110080 LXI D, 8000H
8206 7E M1: MOV A,M
8207 12 STAX D
8208 23 INX H
8209 13 INX D
820A 3EFF MVI A, FFH
820C 95 SUB L
820D 3E01 MVI A, 01H
820F 9C SBB H
8210 D20682 JNC M1
8213 E7 RST 32


а вот со стеком, здесь где-то ошибка (задание быо - производить поиск конца массива в подпрограмме и перед выполнением программы сохранить все регистры микропроцессора в стеке и восстановить их после выполнения программы в исходное состояние)
Адрес
Код Метка Мнемоника
8300 Е5 PUSH H
8301 D5 PUSH D
8302 210000 LXI H, 0000H
8305 110080 LXI D, 8000H
8308 7E M1: MOV A,M
8309 12 STAX D
830А 23 INX H
830B 13 INX D
830C CD0682 CALL M2
830F D20883 INC M1
8313 D1 POP D
8314 E1 POP H
8315 E7 RST 32

8206 3EFF M2: MVI A, FFH
8207 85 SUB L
8208 3E01 MVI A, 01H
8209 9C SBB H
8210 C9 RET
0
2 / 2 / 0
Регистрация: 20.04.2011
Сообщений: 16
20.04.2011, 13:46 6
массив стек - со стеком, листинг3лабы1 - без стека
0
Вложения
Тип файла: doc массив стек.doc (47.5 Кб, 16 просмотров)
Тип файла: doc листинг3лабы 1.doc (38.0 Кб, 21 просмотров)
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2011, 13:46

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Скопировать данные с одного listview в другой
Всем доброго дня! Выручайте! Есть listview с тремя столбцами: Таб. № | ФИО | Номер телефона В...

Скопировать определенные данные с одного листа на другой
Здравствуйте,давно читаю и впервые понадобилась помощь,нужно чтобы с одного листа с определенного...

Как скопировать данные с одного хоста на другой.
Есть два независимых сайта на разных хостах (php, mySql). Как взять данные из базы одного сайта...

Скопировать данные с одного StringGrid1 в другой StringGrid2
Помогите пожалуста, решить несложную задачу. Вот какой код я прописываю для копирования: for...


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

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

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