Программирование на Ассемблере для персональных компьютеров. Садовой Н.Н - 56 стр.

UptoLike

Составители: 

56
add bx, ax ; адрес конца строки
mov byte ptr [bx], "$" ; записать признак конца строки
; Ввод позиции удаления
LLL1: lea dx, MESS2
mov ah, 09h
int 21h ;Приглашение к вводу позиции удаления
lea dx, N_BUFLEN
mov ah, 0Ah
int 21h ; ввод позиции удаления
call VAL ; вызов процедуры перевода в число
jc LLL1 ; ошибка, повторить ввод
cmp al, 0 ; ноль?
jz LLL1 ; ошибка, повторить ввод
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 ; запомнить число удаляемых символов
         add bx, ax                   ; адрес конца строки
         mov byte ptr [bx], "$" ; записать признак конца строки
   ; Ввод позиции удаления
LLL1:    lea    dx, MESS2
         mov ah, 09h
         int    21h         ;Приглашение к вводу позиции удаления
         lea    dx, N_BUFLEN
         mov ah, 0Ah
         int    21h         ; ввод позиции удаления
         call   VAL         ; вызов процедуры перевода в число
         jc     LLL1        ; ошибка, повторить ввод
         cmp al, 0          ; ноль?
         jz     LLL1        ; ошибка, повторить ввод
         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 ; запомнить число удаляемых символов
                                                                    56