Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Push dx ; в стеке



Lea bx, N_INPBUF; адрес начала числа

Mov cl, N_FACTLEN; фактическая длина числа

Xor ch, ch; расширить до сх

Xor ax, ax

Mov dl, 10; основание системы счисления

VAL1: imul dl; умножаем на основание

mov dh, [bx]

sub dh, "0"; преобразуем его в цифру

Add al, DH; добавляем к результату

Inc bx; на следующий символ

Loop VAL1

Cmp ax, 255

Clc;сброс флага CF

Jle VAL2

stc;если результат больше 255 установить флаг CF=1

VAL2: pop dx; восстановить

Pop cx; регистры

Pop bx; из стека

Ret

VAL endp

; Подпрограмма удаления подстроки

; Параметры:

;адрес строки BP+2, позиция удаления BP+4, число удаляемых символов; BP+6, длина строки BP+8

DELSUB proc near

Push bp

Mov bp, SP

Push es

Push ax

Push si

Push di

Push cx

Mov ax, ds

Mov es, ax

mov di, [bp+4]; адрес начала строки

add di, [bp+6]; адрес позиции удаления +1

Dec di; адрес позиции удаления

Mov si, di

add si, [bp+8]; адрес остающейся части строки

mov cx, [bp+4]; адрес начала строки

add cx, [bp+10]; адрес конца строки + "$"

Sub cx, si; число перемещаемых символов - 1

Inc cx; число перемещаемых символов

Cld; продвигаться от начала к концу

Rep movsb; переслать (cx) символов

Pop bp

Pop cx; восстановить

Pop di; регистры

Pop si; из

Pop ax;стека

Pop es

Ret 8; вернуться с очищением стека

DELSUB endp

Code ends

End START


Варианты заданий





Дата публикования: 2014-11-28; Прочитано: 710 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...