Всем привет! Подскажите, нужно реализовать memcpy под x86-target, думал реализовать

таким образом:
pub unsafe fn memcpy(dest: *mut u8, src: *const u8, count: usize) {
core::arch::asm!(
"rep movsb",
in("ecx") count,
in("edi") dest,
in("esi") src,
);
}
Инструкция movsb использует регистр esi который зарезервирован LLVM, соотв. ловлю ошибку компиляции. Как быть?

ps: нашёл решение, с помощью инструкции xchg можно обменять данные в регистрах:
pub unsafe fn memcpy(dest: *mut u8, src: *const u8, count: usize) {
core::arch::asm!(
"xchg ebx, esi",
"rep movsb",
"xchg ebx, esi",
in("ecx") count,
in("edi") dest,
in("ebx") src,
);
}
Вроде как всё работает отлично.

1 ответов

11 просмотров

А зачем тебе вообще понадобилось реализовывать memcpy, да ещё и под x86?

Похожие вопросы

Обсуждают сегодня

Сonst magicTgHTML = (text, entities) => { let processedText = text; let offsetShift = 0; entities.forEach(entity => { const { offset, length, type, url, ...
Андрей
1
а что делать если тебя убивают на картах?
Yarik yarik kyda ti lezesh
43
Как с помощью opencv найти ракету на картинке?))
ᅠ [ Кому не ответил, дублируйте ]
2
Мне вот что интересно, кто на рфе стартовал/играл, что вы фармили, в каком виде контента он прямо хорош? Экспедиция? Вроде прямо на замазанных мапах рф сдувается
Владислав
20
‌/r/pathofexile moderation changes top scoring links : pathofexile (RSS) Hi, everyone. On behalf of the subreddit mod team, I’m here to give you a few updates on the subreddi...
Esionru
3
Подскажите где можно прочитать про реализацию возможности писать человеку при подписке на телеграм канал от имени бота? Было бы не плохо если для Telegraf@3.38.0
Pan Lipton
10
У меня вопрос к знающими, стоит ли вступать в гильдии в игре или лучше полная свобода?
Енот Полоскун
17
У вас бывает ощущение, что хочется потратить весь отпуск на то, чтоб только спать?
Николай
15
Как можно настроить фильтр в пое под себя?
Yarik yarik kyda ti lezesh
15
Кто нибудь поясните это всё таки вброс или да? Про санктум слышал на поедб вбросили, а по дурке откуда инфа и на сколько это вообще правда? Пахнет шизофренией какой-то ✅Divi...
Dmitry Ritter
9
Карта сайта