Oбрaзовaть стpокy, пoвтоpив фpaгмeнт исxоднoй cтpоки c задaннoй пoзиции дaннoй длины требyемоe чиcлo paз. программа на с++,функция должна быть написана с ассемблерной вставкой ,
112
290
Ответы на вопрос:
Думаю, что-то типа того. #include < iostream> #include < stdio.h> using namespace std; int main() { const int n = 100; char *c = new char[n]; int p // позиция int l // длина int k // повторения cout < < "string c: "; cin > > c; cout < < "pos: "; cin > > p; p--; cout < < "length: "; cin > > l; cout < < "n: "; cin > > k; char *v = new char[l*k+1]; if ((p > = 0) & & (l > 0) & & (k > 0) & & ((strlen(c) - p) > = l) & & (p < = strlen( //проверка ввода { __asm { mov ebx, k; // количество повторений mov edi, v // адрес приёмника m1 : cmp ebx, 0 // сравнение je exit1 // если ebx = 0, то переход на exit1 mov ecx, l // длина строки mov esi, c // адрес источника add esi, p // с заданной позиции m2 : mov al, [esi] //из esi mov [edi], al // запись в edi inc edi // edi+1 inc esi // esi+1 loop m2 // цикл eсх раз dec ebx // ebx-1 jmp m1 // переход на m1 exit1 : mov[edi], 0 } cout < < "\nv: "; cout < < v < < endl; } else cout < < "\nerror " < < endl; system("pause"); }
Популярно: Информатика
-
НикитаГоровой02.01.2022 17:04
-
Mandarini12344311.08.2021 08:11
-
DenKovYa08.08.2022 16:44
-
mahotinvasili19.11.2020 01:52
-
максаткайрат07.06.2021 14:33
-
katyaarbato05.12.2021 12:52
-
zenkov2000cemen26.10.2021 17:09
-
alexaste25.04.2020 12:16
-
danila2001k01.01.2022 05:54
-
alina2015a14.10.2021 05:37