Здравствуйте! Помогите пожалуйста с кодом. TASM тип модели - SMALL Моя предыдущая программа(работает): ожидает ввод строки конец ввода <Enter>. По окончании ввода программа должна вывести полученную строку на экран, предварительно осуществив перевод строки (т.е. в результате получить две одинаковые строки друг под другом). Она работает: Надо написать программу, которая также ожидает ввод строки с клавиатуры, а по окончании ввода заменяет последовательность введенных символов на противоположную и выводит на экран. Например, вводится строка: QWERTY12345 <Enter> Программа должна вывести на экран: 54321YTREWQ.
Есть еще такое пояснение: Пояснение. Для приведенного в задании 2 примера после выполнения макровызова GetStr string,20 символы строки расположатся следующим образом: string[0] = Q string[1] =W string[2] =E string[3] =R string[4] =T string[5] =Y string[6] =1 string[7] =2 string[8] =3 string[9] =4 string[10] =5, а в регистре АХ будет число введенных символов АХ=11. Введите еще одну переменную (например. string1 db 256 dup (‘$’) ), в которую перепишите строку string, начиная с последнего символа к первому. После чего выведите string1 на экран дисплея. А как это сделать не пойму
depocomp Организуй цикл, на каждой итерации которого копируй один символ из одной строки в другую. > как это сделать не пойму Как организовать цикл знаешь? Как обратиться к символу в строке по индексу знаешь?
kero тада уж mov si,[begin_of_string] mov cx,[length_of_string] push bp mov bp,sp mov ax,0 shr cx,1 jnc @f lodsb xchg ah,al @@: push ax @@: lodsw xchg ah,al push aх dec cx jnz @b ; начало строки в sp. выводим mov sp,bp pop bp
Спасибо за ответы, но мне пока еще не весь пока код понятен, я парралельно еще только изучаю язык ассемблера. А вот макросы, которые использованы в программе и подключаются с помощью файла maсros.inc
Просто забыл добавить следующие строки: Программа работает, тема закрыта. _basmp_ - для меня ваш код слишком сложен. Всем спасибо.