Студопедия — Лабораторная работа №5
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Лабораторная работа №5

Самостоятельная работа.

Димитровградский инженерно-технологический институт – филиал НИЯУ МИФИ

 

 

Лабораторная работа №5

по дисциплине «Организация ЭВМ»

Тема: «Ввод чисел. Перевод чисел в различные системы счисления»

 

 

Выполнил: студент гр. ВТ-31

Горбунов И. М.

Проверил: Аленин

А. А.

 

Димитровград, 2014

 

 

Задание на выполнение лабораторной работы:

Разработать программу вывода строковых данных в файл. Строка вводится с клавиатуры, во введенной строке заменить символы «.» на «,» и вывести результирующую строку в файл. Работа с файлами должна осуществляться через описатели. В программе должны использоваться подпрограммы.

Замечания:

1. Имя файла должно вводиться с клавиатуры.

2. Если файл с введенным именем не существует, то программа должна выдать запрос о необходимости создания файла.

 

 

Выполнение лабораторной работы

Процедура замены

.model small

.data

msg1 db 13,10,'Input filename: $'

msg2 db 13,10,'File does not exist. Create(y/n)?$'

msg3 db 13,10,'Input string: $'

msg4 db 13,10,'Program finished.$'

buf db 200,205 dup(0);принимает строку, введенную с клавиатуры

.stack 256

.code

start:

mov ax,@data;Настраиваем сегментные регистры

mov ds,ax

;ввод имени текстового файла

mov ah,9;функция вывода сообщения на экран

lea dx,msg1;выводимое сообщение

int 21h;выводим на экран

mov ah,0ah;функция ввода строки с клавиатуры

mov dx,offset buf;буфер куда вводить

int 21h;пользователь вводит в текст в buf

mov bl,buf[1];длина введенной строки

mov bh,0;bx=длина введенной строки

mov buf[bx+2],byte ptr 0;добавить 0 в конец введенной строки

mov ax,3d01h;функция открытия файла на запись

lea dx, buf[2];введенное имя файла

int 21h;попытка открыть

jnc opened;если открыт - переход

mov ah,9;функция вывода сообщения на экран

lea dx,msg2;выводимое сообщение

int 21h;выводим на экран

m1: mov ah,0;ф-я ожидания нажатия клавиши

int 16h;ожидаем нажатия клавиши

cmp ah,49;если N

jz ex;то выход

cmp ah,21;если не Y

jnz m1;то повторить ввод

mov ah,3ch;ф-я создания файла

mov cx,0;атрибуты файла

lea dx, buf[2];введенное имя файла

int 21h;создать новый файл

opened: mov bx,ax;сохранить хэндл созданного/открытого файла

mov ax,4202h;переместить

xor cx,cx;указатель файла

xor dx,dx;в конец

int 21h

mov ah,9;функция вывода сообщения на экран

lea dx,msg3;выводимое сообщение

int 21h;выводим на экран

mov ah,0ah;функция ввода строки с клавиатуры

mov dx,offset buf;буфер куда вводить

int 21h;пользователь вводит в текст в buf

lea si,buf[2];начало введенного текста

lp: mov al,[si];взять очередной символ

cmp al,13;если конец строки

jz fin;то закончить

cmp al,'.';если точка

jnz m2

mov [si],byte ptr ',';то заменить ее на запятую

m2: inc si;следующий символ

jmp lp;обработать всю строку

fin: mov cl,buf[1];длина введенной строки

mov ch,0;сx=длина введенной строки

mov si,cx

mov buf[si+2+1],byte ptr 10;За символом 13 в конце строки добавить 10

add cx,2;длина строки+перевод строки

lea dx,buf[2];адрес строки

mov ah,40h;ф-я записи

int 21h;дописываем строку в файл

mov ah,3eh;закрываем

int 21h;файл

ex: mov ah,9;функция вывода сообщения на экран

lea dx,msg4;выводимое сообщение

int 21h;выводим на экран

 

mov ah,1;Ожидаем нажатия любой клавиши

int 21h

mov ax,4c00h;закончить программу

int 21h

 

end start

При запуске программы вводим строку «qwer,,..// qwer». Программа заменяет все точки на запятые и записывает в файл полученную строку, т.е в файле qwe будет записана строка «qwer,,,// qwer» (Рисунок 1).

Рисунок 1 – контрольный пример




<== предыдущая лекция | следующая лекция ==>
САМОСТОЯТЕЛЬНАЯ РАБОТА | Глава 6. ТОТАЛИТАРИСТСКАЯ СПРАВЕДЛИВОСТЬ

Дата добавления: 2015-08-27; просмотров: 544. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Задержки и неисправности пистолета Макарова 1.Что может произойти при стрельбе из пистолета, если загрязнятся пазы на рамке...

Вопрос. Отличие деятельности человека от поведения животных главные отличия деятельности человека от активности животных сводятся к следующему: 1...

Расчет концентрации титрованных растворов с помощью поправочного коэффициента При выполнении серийных анализов ГОСТ или ведомственная инструкция обычно предусматривают применение раствора заданной концентрации или заданного титра...

МЕТОДИКА ИЗУЧЕНИЯ МОРФЕМНОГО СОСТАВА СЛОВА В НАЧАЛЬНЫХ КЛАССАХ В практике речевого общения широко известен следующий факт: как взрослые...

СИНТАКСИЧЕСКАЯ РАБОТА В СИСТЕМЕ РАЗВИТИЯ РЕЧИ УЧАЩИХСЯ В языке различаются уровни — уровень слова (лексический), уровень словосочетания и предложения (синтаксический) и уровень Словосочетание в этом смысле может рассматриваться как переходное звено от лексического уровня к синтаксическому...

Плейотропное действие генов. Примеры. Плейотропное действие генов - это зависимость нескольких признаков от одного гена, то есть множественное действие одного гена...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия