
- •Лабораторная работа №1
- •F1: Установка даты и времени ' Команда установки даты
- •3. Оборудование и программное обеспечение
- •4. Задание на работу
- •5. Порядок выполнения работы
- •6. Содержание и оформление отчета
- •7. Контрольные задания
- •8. Библиографический список
- •Лабораторная работа №2 разработка интерфейса пользователя
- •Средств командных файлов
- •1. Цель и задачи работы
- •2. Основные теоретические сведения
- •2.2. Пример простого командного файла
- •2.3. Специальные команды командных файлов
- •Goto [:]метка
- •If errorlevel X if not errorlevel y команда ,
- •Pause [текст]
- •Rem [текст]
- •2.4. Команды перенаправления ввода вывода
- •Copy con имя_файла
- •2.5. Команды-фильтры
- •Process | find [/V] [/c] [/n] [/I] "строка"
- •2.6. Ansi-драйвер
- •2.7. Программа Norton Batch Enhancer
- •Sa атрибуты [/n] [/cls]
- •[Bright | blinking] цвет [on фон],
- •Jump метка_1 [метка_2] … /default:метка
- •Beep файл [/e]
- •[/Dn] [/Fm] [/Rp] [/Wq]; комментарий
- •Printchar символ n [атрибуты]
- •Альтернативные программы типа Batch Enhancer
- •2.8. Командные файлы в операционных системах Windows nt/2000/xp
- •Color [код_цвета],
- •If exist prog.Obj (del prog.Obj) else echo prog.Obj не найден!
- •%Errorlevel% – раскрывается в текущее значение errorlevel;
- •2.10. Команды-фильтры в операционных системах Windows nt/2000/xp
- •[/O] [/p] [/f:файл] [/c:строка] [/g:файл]
- •2.11. Примеры интерактивных командных файлов
- •3. Оборудование и программное обеспечение
- •4. Задания на работу
- •5. Порядок выполнения работы
- •6. Содержание и оформление отчета
- •7. Контрольные вопросы
- •8. Библиографический список
- •Лабораторная работа №3
- •Памяти компьютера
- •1. Цель и задачи работы
- •2. Основные теоретические сведения
- •2.1 Драйвер электронного диска ramDisk
- •Cancel –закрыть панель настройки с отменой выбранных настроек;
- •2.2. Драйвер электронного диска ar Soft ramDisk
- •2.3. Драйвер электронного диска фирмы Super Speed Software
- •3. Оборудование и программное обеспечение
- •4. Задание на работу
- •5. Порядок выполнения работы
- •6. Контрольные вопросы
- •7. Библиографический список
- •Контрольно-курсовая работа работа в системе программирования "ассемблер"
- •1. Цель и задачи работы
- •2. Основные теоретические сведения
- •2.1. Система программирования Microsoft Assembler
- •Masm[.Exe] [/парам] asm-файл [,obj-файл] [,lst-файл] [,crf-файл]
- •2.2. Система программирования Turbo Assembler
- •2.3. Пример программы на языке Microsoft Assembler
- •2.4. Пример программы на языке Turbo Assembler
- •Суффиксы машинного кода
- •2.6. Пример оформления текста программы на ассемблере
- •3. Оборудование и программное обеспечение
- •4. Задание на работу
- •5. Порядок выполнения работы
- •6. Контрольные вопросы
- •7. Библиографический список
2.6. Пример оформления текста программы на ассемблере
Далее приводится пример текста интерактивной программы на языке ассемблера, в который включены комментарии, облегчающие документирование программы и ее анализ. Программа осуществляет умножение двух однозначных чисел, которые вводятся с клавиатуры, и выводит результат на дисплей.
;******************************************************** ;* Пример оформления текста программы на ассемблере * ;* Программа умножения двух однозначных чисел * ;* Исходные данные вводятся с клавиатуры, * ;* результат выводится на дисплей * ;* Система программирования – Turbo Assembler * ;********************************************************
.MODEL small
.STACK 100H
.DATA
str0 DB "****************************************",13,10 DB "* ККР студента гр. 621222 Ххххххх Х.Х. *",13,10 DB "****************************************",13,10,"$" str1 DB 13,10,"Введите множимое: ","$" str2 DB 13,10,"Введите множитель: ","$" str3 DB 13,10,"Результат: ","$" num1 DB ? num2 DB ? .CODE start:
mov ax,@data
mov ds,ax
; Вывод заставки
lea dx,str0 mov ah,9 |
; в DX - адрес строки |
|||||
int 21h input_1: ; Ввод множимого |
; вывод строки |
|||||
lea dx,str1 mov ah,9 |
; в DX - адрес строки |
|||||
int 21h mov ah,1 |
; вывод строки |
|||||
int 21h |
; ввод символа |
|||||
cmp al,'0' jl input_1 cmp al,'9' jg input_1 |
; проверка введенного символа |
|||||
sub al,30h |
; преобразование кода символа в число |
|||||
mov num1,al input_2: ; Ввод множителя |
; запомнить множимое |
|||||
lea dx,str2 mov ah,9 |
; в DX - адрес строки |
|||||
int 21h mov ah,1 |
; вывод строки |
|||||
int 21h |
; ввод символа |
|||||
cmp al,'0' jl input_2 cmp al,'9' jg input_2 |
; проверка введенного символа |
|||||
sub al,30h |
; преобразование кода символа в число |
|||||
mov num2,al |
; запомнить множитель |
|||||
xor ax,ax |
; обнуление регистра AX |
|||||
xor bx,bx mov al,num1 mov bl,num2 mul bl |
; обнуление регистра BX |
|||||
aam |
; коррекция результата в ax |
|||||
mov dl,ah |
; в DL старшая цифра |
|||||
mov dh,al
|
; в DH младшая цифра |
|||||
or dh,30h |
; получение ASCII-кода младшей цифры |
|||||
or dl,30h |
; получение ASCII-кода старшей цифры |
|
||||
push dx |
; сохранить регистр DX в стеке |
|
||||
lea dx,str3 |
; в DX - адрес строки |
|
||||
mov ah,9 |
|
|
||||
int 21h |
|
; вывод строки |
|
|||
pop dx |
|
; восстановить регистр DX из стека |
|
|||
mov ah,2 int 21h |
|
; вывод на экран старшей цифры |
|
|||
xchg dh,dl |
|
; обмен значений в регистрах DH и DL |
|
|||
mov ah,2 int 21h mov ax,4C00h |
|
; вывод на экран младшей цифры |
|
|||
int 21h END start |
|
; завершение программы с кодом 0 |
|
Приведенная программа считывает с клавиатуры символы цифр от 0 до 9 и преобразует их в коды чисел от 0 до 9 путем вычитания из ASCII-кода символа цифры константы 30h (48). Программа содержит также проверку вводимых символов на принадлежность их к цифрам. В случае неправильного ввода программа предложит ввести число заново. После операции умножения выполняется команда AAM, которая преобразует двоичный код результат в код двузначного неупакованного двоично-десятичного числа (кодировка BCD). После этого коды старшей и младшей цифр результата преобразуются в ASCIIкоды цифр от 0 до 9 и последовательно выводятся на дисплей. Для ввода и вывода данных, а также для завершения работы программы используются соответствующие функции прерывания 21H операционной системы MS-DOS.