Сформировать другой массив, в который нечетные элементы из первого массива переписать без изменений - Turbo Pascal

Формулировка задачи:

Уже всю голову пробил, в чем ошибка? По сути программа должна выводить 2 массива - начальный и переработанный. на деле выходит, что получаю что-то в роде 37117 2 0 0 Вот само задание. Ниже мой вариант кода Дан массив байтов. Сформировать другой массив, в который нечетные элементы из первого массива переписать без изменений, а к четным прибавить 1.
program is;
 
var
a:array [1..6] of word;
b:array [1..6] of word;
c,i: integer;
 
label sh1;
 
begin
randomize;
for i:=1 to 6 do
a[i]:=10+random(99);
 
asm
mov si,0
mov bx,0
 
lea bp,a
lea di,b
sh1:
 
mov al,0
mov ah,0
mov ax,0
mov dx,0
 
mov ax,[ds:bp][si]
mov cx,10
div cx
add cx,dx
mov [ds:di][bx],ax
 
add bx,1
add si,1
cmp bx,5
jbe sh1
end;
for c:=1 to 6 do
writeln(a[c]);
writeln('');
for c:=1 to 6 do
writeln(b[c]);
readln;
end.

Код к задаче: «Сформировать другой массив, в который нечетные элементы из первого массива переписать без изменений - Turbo Pascal»

textual
var
  a, b: array [1..6] of Word;
  i: Integer;
begin
  Randomize;
  for i:=1 to 6 do begin
    a[i]:=10+Random(90); Write(' ',a[i]);
  end; WriteLn;
  asm
    mov ax,ds
    mov es,ax
    lea si,a
    lea di,b
    cld
    mov cx,6
  @1:
    lodsw
    or  ax,1
    stosw
    loop @1
  end;
  for i:=1 to 6 do Write(' ',b[i]); WriteLn;
end.

13   голосов, оценка 3.846 из 5


СОХРАНИТЬ ССЫЛКУ