Ассемблерная вставка: копирование содержимого массива типа char в n-раз больший массив - Turbo Pascal
Формулировка задачи:
Собственно задание: Написать программу, осуществляющую копирование содержимого массива типа char в n-раз больший массив, при этом каждый элемент массива должен повторяться n-раз, т. е., например, из массива 'a', 'b', 'c', при n=3, должен быть сформирован массив 'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c' Ввод-вывод массивов осуществлять в виде строк. Основную часть программы заменить ассемблерной вставкой.
Вот код на паскале:
Собственно вопрос как в ассемблерной вставке обратиться к элементам массива?
Решение задачи: «Ассемблерная вставка: копирование содержимого массива типа char в n-раз больший массив»
textual
Листинг программы
var a, b: String; d: Byte; begin Write('enter string: '); ReadLn(a); Write('enter count: '); ReadLn(d); b:='error :('; asm mov dx,ds mov es,dx lea si,a lea di,b xor ax,ax lodsb mov cl,d mul cl or ah,ah jnz @2 mov cx,ax stosb xor bx,bx @1: lodsb xchg cx,bx mov cl,d rep stosb xchg cx,bx loop @1 @2: end; Write('result: ',b); ReadLn; end.