${parameter:offset:length}
, а больше, как будто, тут ничего и не надо:#! /bin/bash
k=$1
V=$2
for (( i=0 ; i < $k; ++i )) ; do
Vi=${V:1}
for (( j=1 ; j < ${#V} ; ++j )) ; do
Vj=${V:0:$j}${V:$(($j + 1))}
if [ $Vj -gt $Vi ] ; then
Vi=$Vj
fi
done
V=$Vi
done
echo $V
из-за нехватки знаний
строка вверху в обратных апострофах
это NP-полная задача
извините за дотошность
А теперь походит на правду?
Почему отличаются значения в регистрах: sp, ds, es, ss, cs?
$ hexdump -Cv TEST.EXE
00000000 4d 5a 68 00 02 00 02 00 20 00 21 00 ff ff 07 00 |MZh..... .!.....|
00000010 00 02 00 00 00 00 00 00 3e 00 00 00 01 00 fb 50 |........>......P|
.stack 100h
. Возможно это какая-то особенность tasm4. я нашла ошибку. Если в 12-той строке mov CX, 4 вместо 4, кол-во итераций поставить 5, то программа
mov cx, 4
было правильно. как вывод элемента по индексу дает сложность O(log (n)) ?
Мария, отлично. Остаётся понять, с какого именно места код запускается, с какого должен, и как сделать так, чтобы желаемое стало действительным.
Текст по ссылке может прояснить детали загрузки и запуска программ под DOS.
У com-файла все сегменты смотрят в одно место. MS-DOS их так запускает, ничего специально для этого делать не нужно.
push cs ; pop ds
-- излишне.