smi24.net
Работа
Июнь
2023

(Срочно)Исправить небольшой код на C++ с ассемблерной вставкой

0
Есть код написанный по заданию ниже который никак не могу скомпилировать.
Заказ в том, чтобы быстро исправить код, код компилировался в visual studio 2019 и выполнял задание. Код размещён на GitHub и ниже в описании задания.
Ссылка на код https://github.com/ProMix0/Laboratory/blob/master/...

Задание было:
Написать функцию Swap, которая меняет местами содержимое двух областей памяти
одинаковой длины.
void Swap(void *Mem1, void *Mem2, long Len)
Здесь Mem1 — указатель на первую область памяти, Mem2 — на вторую, Len — их длина в
байтах. Для параметра Len использован знаковый тип, поскольку работоспособность функции
должна гарантироваться при 0 ≤ Len < 2^31.
В коде реализовать цикл обмена областей памяти блоками по 4 или 8 байт. Обмен по 8 байт может быть реализован через стек математического
сопроцессора с помощью команд fild (загрузка числа из памяти в стек) и fistp (выгрузка числа из
стека в память) со спецификатором размера qword ptr (четверное слово). Стек сопроцессора
при необходимости может быть использован и при обмене блоками по 4 байта. В этом случае в
командах fild и fistp используется спецификатор размера dword ptr. Поскольку значение Len в
общем случае может быть не кратно 4 или 8, оставшиеся после цикла обмена двойных или
четверных слов байты обменять любым удобным способом.
Рассмотреть примеры работы функции. В каждом примере берутся два массива одного
типа и одной длины, но с разным содержанием (допустимо использовать как статические, так и
динамические массивы). Для них вызывается функция Swap. Массивы рассмотреть двух видов:
— вещественных чисел типа float;
— символов char (т.е. заполняется некоторой строкой).
При этом для каждого вида массивов рассмотреть два случая с разной длиной, т.е. функцию
Swap для каждого вида массивов запускать дважды. Всего получается 4 примера.
Вывести результаты на экран (два массива: до и после вызова функции Swap). X86

Код:
#include <stdio.h>

void Swap(void* mem1, void* mem2, int len) {
asm("mov rcx,rdx\n"
"shr rcx,3\n"
"and rdx,7\n"

"test rcx,rcx\n"
"jz skip_8\n"

"loop_8:"
"mov rax,[rsi]\n"
"mov rbx,[rdi]\n"

"mov [rdi],rax\n"
"mov [rsi],rbx\n"

"add rsi,8\n"
"add rdi,8\n"
"loop loop_8\n"

"skip_8:"
"mov rcx,rdx\n"
"test rcx,rcx\n"
"jz return\n"

"loop_1:"
"mov al,[rsi]\n"
"mov bl,[rdi]\n"

"mov [rdi],al\n"
"mov [rsi],bl\n"

"inc rsi\n"
"inc rdi\n"
"loop loop_1\n"
"return:");
}

void main() {
float a[] = {-1, 2.4, 3.0}, b[] = {4.25, -5.15, 6.666666};
for (int i = 0; i < 3; i++) printf("%f ", a[i]);
printf("\n");
for (int i = 0; i < 3; i++) printf("%f ", b[i]);
printf("\nSwap\n");
Swap(a, b, 3 * sizeof(float));
for (int i = 0; i < 3; i++) printf("%f ", a[i]);
printf("\n");
for (int i = 0; i < 3; i++) printf("%f ", b[i]);
printf("\n\n\n");

float c[] = {-1, 2.4, 3.0, 15.345, 09.90},
d[] = {123.456, 654.321, 4.25, -5.15, 6.666666};
for (int i = 0; i < 3; i++) printf("%f ", c[i]);
printf("\n");
for (int i = 0; i < 3; i++) printf("%f ", d[i]);
printf("\nSwap\n");
Swap(c, d, 5 * sizeof(float));
for (int i = 0; i < 3; i++) printf("%f ", c[i]);
printf("\n");
for (int i = 0; i < 3; i++) printf("%f ", d[i]);
printf("\n\n\n");

char e[] = "hello", f[] = "world";
printf("%s\n%s\nSwap\n", e, f);
Swap(e, f, 5);
printf("%s\n%s\n\n\n", e, f);

char g[] = "goodbye", h[] = "my hell";
printf("%s\n%s\nSwap\n", g, h);
Swap(g, h, 7);
printf("%s\n%s\n\n\n", g, h);
}






Обзор известных приложений, созданных на iOS

Можно ли перевестись из одной автошколы в другую в процессе обучения?

Агния Кузнецова в шоу «Вкусно с Анфисой Чеховой» рассказала, как убедила Балабанова взять на роль её однокурсника

В Москве ежегодно состоялся юбилейный, всероссийский, патриотический гала-концерт «Проза и поэзия» «Россия - семья семей»


Парализуют глистов: врач Садыков подтвердил пользу тыквенных семян

Питание и здоровье: чего нам не хватает?

Пластический хирург Александр Вдовин: как избавиться от мешков под глазами

Очень модный гардероб для этой осени: примеры образов


Raging Richarlison slams ‘f***ing s***’ card as Tottenham star’s EA FC 25 rating is revealed

Every time we go on holiday my husband ogles other women on the beach

Elle King shares major life update after opening up about 'toxic' relationship with dad Rob Schneider

Marin schools proactive on state cellphone restrictions


В Москве ежегодно состоялся юбилейный, всероссийский, патриотический гала-концерт «Проза и поэзия» «Россия - семья семей»

В «Деловых Линиях» рассказали о росте спроса на интеграционные решения более чем в 3 раза

Танцы северных огней

Филиал № 4 ОСФР по Москве и Московской области информирует: Социальный фонд выплатит остатки материнского капитала менее 10 тысяч рублей


Ранняя версия Mini Empire: Hero Never Cry с русским языком доступна в Google Play

Кровь, кишки и всё такое в трейлере новых добиваний для Mortal Kombat 1

Мафия-НН: Все началось за длинным столом на пивном заводе.

Мафия-НН: Густой аромат армянского кофе наполнил воздух старательно украшенной гостиной.



В Москве ежегодно состоялся юбилейный, всероссийский, патриотический гала-концерт «Проза и поэзия» «Россия - семья семей»

Можно ли перевестись из одной автошколы в другую в процессе обучения?

Можно ли перевестись из одной автошколы в другую в процессе обучения?

В Москве ежегодно состоялся юбилейный, всероссийский, патриотический гала-концерт «Проза и поэзия» «Россия - семья семей»


МТС открыла для кировчан предзаказ серии Xiaomi 14T

Агния Кузнецова в шоу «Вкусно с Анфисой Чеховой» рассказала, как убедила Балабанова взять на роль её однокурсника

Иномарка сбила 11-летнюю девочку на пешеходном переходе в Москве

Можно ли перевестись из одной автошколы в другую в процессе обучения?


Таксист разбил окно автобуса и избил водителя на западе Москвы

Газпром нефть хочет увеличить объемы переработки и активизировать поставки нефти по СМП

Прощание с актером Романом Мадяновым прошло в Подмосковье

Аспекты обеспечения технологического суверенитета в энергетическом машиностроении обсудили на РЭН-2024


Эйсинг-777 // Марин Чилич стал самым низкорейтинговым чемпионом турнира АТР

Токио (ATP). 1-й круг. Хуркач сыграет с Гироном, Берреттини – с ван де Зандшульпом

Кудерметова вышла в третий круг турнира WTA 1000 в Пекине

Хуркач пожертвует по €100 за каждый эйс пострадавшим от наводнения


Таксист разбил окно автобуса и избил водителя на западе Москвы

За минувшие сутки в России произошло 291 ДТП

Производство деталей для аэрозолей запустят на льготной земле в Богородском округе

Желдорреммаш определил лучших работников локомотиворемонтных заводов 2024 года


Музыкальные новости

«Туман рассеется, люди узнают правду»: Тимати публично объявил о двуличии Татьяны Бакальчук после смертельной стрельбы в офисе Wildberries

«Как здорово, что все мы здесь сегодня собрались»: Олег Митяев выступит в День тигра во Владивостоке

Баста въезжает в новый сезон своего шоу МС Taxi на «бентли» в компании MIRAVI.

«Это было последним ударом»: Волочкова вспомнила как ее бросил Керимов


Можно ли перевестись из одной автошколы в другую в процессе обучения?

В Москве ежегодно состоялся юбилейный, всероссийский, патриотический гала-концерт «Проза и поэзия» «Россия - семья семей»

Hybrid запустил онлайн-академию Hybrid Training Hub

Можно ли перевестись из одной автошколы в другую в процессе обучения?


На матче "ЦСКА-Динамо" родилась новая семья

Американский регулятор прокомментировал обвинения SpaceX

Спартак Кострома - Енисей. Гол и лучшие моменты (видео). FONBET Кубок России по футболу сезона 2024-2025 гг. Футбол (видео)

Названы системные требования нейросети Apple


Можно ли перевестись из одной автошколы в другую в процессе обучения?

Можно ли перевестись из одной автошколы в другую в процессе обучения?

С номером 666. Audi влетела в фуру на скорости 300 км/ч в Подмосковье

Филиал № 4 ОСФР по Москве и Московской области информирует: Гражданам Москвы и Московской области, получившим тяжелые производственные травмы, выданы автомобили марки «Лада Гранта»


Акции Газпрома на Московской бирже поднялись на 1,76% после поручения Путина

Путин изменил ядерную доктрину: Россия готова жестко ответить на удары по ее территории

Путин объявил о создании независимого платёжного инструмента БРИКС

Путин на совещании Совбеза заявил об уточнении ядерной доктрины России


Рентгенолог Чекалина усомнилась в целесообразности частых КТ при COVID-19



Косметолог Мадина Байрамукова: какие народные рецепты красоты могут быть опасны

Пластический хирург Александр Вдовин: как избавиться от мешков под глазами

«Швабе» показал разработки для интенсивной терапии на конференции «Медицина катастроф – 2024»

В международном научном журнале опубликованы результаты работы мультидисциплинарной команды российских медиков


Человек-скандал: Все яйца Зеленского — в корзине Камалы Харрис

Зеленский отреагировал на выделение нового пакета военной помощи от США

Байден анонсировал поставку Киеву дальнобойных ракет

Иницитатива Киева: Белый дом снял ответственность за визит Зеленского на военный завод


ГУАП на открытии XXIX Международного Биос-форума

Подведены итоги конкурса «Мы верим твердо в героев спорта»

Подведены итоги конкурса «Мы верим твердо в героев спорта»

Танцевальный день «Двигайся в такт» от спортивного клуба «Колибри» в ТРЦ «Нора»


Лукашенко дал ответ на вопрос, в каком случае Минск применит ядерное оружие

«Россия за нас втягивается…» Лукашенко грозит НАТО ядерным оружием

Лукашенко назвал условие, при котором Минск применит ядерное оружие

Как только НАТО нападет на Беларусь, будет применено ядерное оружие – Лукашенко


Собянин присвоил восьми компаниям статус якорных резидентов технопарков

Сергей Собянин рассказал, как 3D-технологии помогают столичным медикам

Собянин посоветовал москвичам пересаживаться на электромобили

Турпоток в Москву превзошел рекордные показатели 2019 года — Собянин


Под Симферополем продолжается строительство нового крупного микрорайона

Набережная приобрела популярность

В ЖК «Детали» установят пассажирские лифты энергоэффективности класса «А»

Столица представила аналитический доклад по климатической повестке городов России


За минувшие сутки в России произошло 291 ДТП

Производство деталей для аэрозолей запустят на льготной земле в Богородском округе

Прощание с актером Романом Мадяновым прошло в Подмосковье

Таксист разбил окно автобуса и избил водителя на западе Москвы


В пропавшем в Архангельской области вертолете находился депутат Сметанин

Беспроводной сканер штрих-кодов SAOTRON P05i промышленного класса

ТСД SAOTRON RT41 GUN: практичный, производительный, надёжный

Прокуратура проверяет информацию о пропаже вертолета в Архангельской области


В районе Симферополя появится необычный жилой квартал

Под Симферополем продолжается строительство нового крупного микрорайона

Прогноз погоды в Крыму на 26 сентября

МВД: полиция в Симферополе задержала пенсионерку по подозрению в убийстве детей


НА ФАБРИКЕ «МАРИЯ» В САРАТОВЕ ВПЕРВЫЕ ПРОВЕЛИ ШАХМАТНЫЙ ТУРНИР

Производство деталей для аэрозолей запустят на льготной земле в Богородском округе

Аспекты обеспечения технологического суверенитета в энергетическом машиностроении обсудили на РЭН-2024

Прощание с актером Романом Мадяновым прошло в Подмосковье














СМИ24.net — правдивые новости, непрерывно 24/7 на русском языке с ежеминутным обновлением *