русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Текст решения представлен в листинге 6.3.


Дата добавления: 2014-11-28; просмотров: 547; Нарушение авторских прав


Листинг 6.3. Решение задачи.

Data segment

MESS1 db 0dh,0ah, "Введите строку:", 0dh,0ah, "$"

MESS2 db 0dh,0ah, "Введите позицию:", 0dh,0ah, "$"

MESS3 db 0dh,0ah, "Введите число удаляемых символов:", 0dh, 0ah, "$"

MESS4 db 0dh,0ah, "Строка после удаления:", 0dh,0ah, "$"

S_BUFLEN db 80 ; Максимальная длина строки

S_FACTLEN db ? ; Фактическая длина строки

S_INPBUF db 80 dup(?) ; Введённая строка

N_BUFLEN db 3 ; Максимальная длина числа при вводе

N_FACTLEN db ? ; Фактическая длина числа

N_INPBUF db 3 dup(?) ; Введённое число

POSDEL dw ? ; Позиция начала удаления

LENDEL dw ? ; Число удаляемых символов

Data ends

Code segment

Assume cs:code, ds:data

START: mov ax, data

Mov ds,ax

; Ввод строки

LOP: lea DX, MESS1

Mov ah, 09h

Int 21h ;приглашение к вводу строки

Lea DX, S_BUFLEN

Mov ah, 0Ah

Int 21h ; ввод строки

Mov AL, S_FACTLEN

Cmp al, 0 ; строка пустая?

Ja LLL0 ; нет продолжать

Jmp quit ; закончить работу

LLL0: lea bx, S_INPBUF ; получить адрес начала строки

Cbw ; получить длину в слове

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 ; превышает длину строки?


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.136 сек.