Вопрос № 183385: Здравствуйте! Прошу помощи в следующем вопросе: требуется составить программу, которая удаляет пробелы справа. Ассемблер-TASM. EXE. Надеюсь, что Вы мне поможете. ...
Вопрос № 183385:
Здравствуйте! Прошу помощи в следующем вопросе: требуется составить программу, которая удаляет пробелы справа. Ассемблер-TASM. EXE. Надеюсь, что Вы мне поможете.
model small
code
szMax equ 255
;начало настраиваем сегментыные регистры
begin: mov ax,@data
mov ds,ax
;выводим сообщение
mov ah,9
lea dx,dbEnter
int 21h
;вводим строку
mov ah,0Ah
lea dx,dbMax
int 21h
;настраиваем на цикл регистры
mov cl,dbSize;длина введенной строки
xor ch,ch;сбросим старщий байт
lea si,dbStr;начало строки
mov dx,si;дублируем начало строки
add si,cx;указатеь в конец строки
mov byte ptr[si],'$';признак конец строки
@01: mov al,[si];читаем символ
cmp al,' ';пробел?
jnz @@03;нет переходим
push si;запоминаем указатель на строку
@02: mov al,[si+1];считываем следующий символ
mov [si],al;записываем вместо пробела
inc si;переходим на следующий символ
cmp al,'$'проверяем признак конца строки
jnz @@02;нет переходим
pop si;востанавливаем указатель на строку
@03: dec si;следующий проверяемый символ
cmp si,dx;проверяем начало строки
jae @@01;нет переходим
;выводим сообщение и строку
mov ah,9
lea dx,dbResult
int 21h
mov ah,9
lea dx,dbStr
int 21h
;ждем любую клавишу и выходим
xor ax,ax
int 16h
mov ax,4c00h
int 21h
data
dbEnter db 10,13,'Enter string:$'
dbResult db 10,13,'Result:$'
dbMax db szMax
dbSize db ?
dbStr db szMax dup(?)
stack 200h
end begin
вопросы по программе задавайте минифорум Удачи!
----- Итерация от человека. Рекурсия — от Бога. — Л. Питер Дойч
Ответ отправил: Зенченко Константин Николаевич (Модератор)
Ответ отправлен: 01.06.2011, 19:34
Номер ответа: 267525 Украина, Киев Тел.: +38-097-238-60-03 Адрес: Украина, Киев
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 267525
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.