![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
cmp AL, S_FACTLEN; превышает длину строки?
Jg LLL1; ошибка, повторить ввод
Cbw; расширить до слова
Mov POSDEL, AX; запомнить позицию удаления
; Ввод длины удаляемой части
LLL2: lea dx, MESS3
Mov AH, 09h; приглашение к вводу числа
Int 21h; удаляемых символов
Lea dx, N_BUFLEN
Mov ah, 0ah
Int 21h; ввод числа удаляемых символов
Call VAL; вызов процедуры перевода в число
Jc LLL2; ошибка, повторить ввод
Cbw; расширить до слова
Mov LENDEL, AX; запомнить число удаляемых символов
;Занести в стек параметры и вызвать подпрограмму удаления
Lea bx, S_INPBUF
Mov al, S_FACTLEN; дополняем до слова
Cbw
Push ax; 4-й параметр длина строки
Push LENDEL; 3й параметр число удаляемых симв.
Push POSDEL; 2-й параметр позиция удаления
Push bx; 1й параметр адрес строки
Call DELSUB; вызов подпрограммы
; Вывод результата
Lea dx, MESS4
Mov ah, 09h
Int 21h; вывод заголовка вывода
Lea bx, S_FACTLEN
Xor cx, cx
Mov cl, S_FACTLEN
LLL3: inc bx
cmp byte ptr [bx], 0
Loopne LLL3; повторять до конца строки или первого нуля
LLL4: mov byte ptr [bx], "$"
Lea DX, S_INPBUF
Mov ah, 09h
Int 21h
Jmp LOP
QUIT: mov ax, 4c00h
Int 21h
; Функция получения числа из его строкового представления
; Схема преобразования десятичного числа а2а1а0 в 16-ричную СС по;схеме Горнера - N16=(a2*A+a1)*A+a0, где A десятичное основание
VAL proc near
Push bx; сохранение
Push cx; регистров
Дата публикования: 2014-11-28; Прочитано: 272 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!