- •1) Напишите и отладьте программу, которая выводит на экран 64 ascii символа, начиная с символа пробела. Исходный текст программы имеет следующий вид:
- •Int 21h ; прерывание, функция
- •2) Напишите программу, которая выводит на экран строку сообщения, например, сообщение «Hello, World!». Самостоятельно разберите назначение каждой команды.
- •Создание приложения для получения характеристик компьютера и операционной системы.
- •Контрольные вопросы
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФИЛИАЛ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ (НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ)» в г. Смоленске
Задания:
1) Напишите и отладьте программу, которая выводит на экран 64 ascii символа, начиная с символа пробела. Исходный текст программы имеет следующий вид:
; кодовый сегмент
cseg segment 'code'
assume cs:cseg, ds:dseg, ss:sseg
mypr proc
mov ax,sseg ;в регистр ax записывается указатель
;на начало cтекового сегмента
mov ss,ax ; в сегмент стека записывается адрес
;начала стека
mov sp, offset TOS ; в указатель стека
;записывается адрес стека
mov ax,dseg ; в регистр ах записывается
;адрес сегмента данных
mov ds,ax ; адрес сегмента данных
;записывается в регистр ds
mov cx,64 ; в регистр сх записывается
;счетчик цикла - 64
mov al,' ' ; в регистр al записывается код
;пробела
mov si,0 ; в регистр si записывается 0
;(смещение в строке mes)
f1: mov mes[si],al ; содержимое регистра al
; записывается в строку mes
; (индекс в строке содержится в
;регитсре si)
inc si ; увеличение индекса строки на 1
inc al ; увеличение кода символа на 1
loop f1 ; содержимое регистра cx
;уменьшается на 1, если в сх –
;не 0, то переход на метку f1
mov ah,40h ; функция вывода на устройство
;или в файл
mov bx,1 ; вывод на экран
mov cx,64 ; число выводимых байт
mov dx,offset mes ; выводимое сообщение находится
;по адресу ds:dx
int 21h ; прерывание, функция
; прерывания находится в
; регистре ah
mov ax,4c00h ; функция завершения работы
; программы с кодом завершения
Int 21h ; прерывание, функция
; прерывания находится в
; регистре ah
mypr endp
cseg ends
; сегмент данных
dseg segment
mes db 64 dup('~')
dseg ends
; сегмент стека
sseg segment
dw 30 dup(?)
TOS label word
sseg ends
end mypr
2) Напишите программу, которая выводит на экран строку сообщения, например, сообщение «Hello, World!». Самостоятельно разберите назначение каждой команды.
text segment 'code'
assume cs:text, ds:data
begin:
MOV AX, data
MOV DS,AX
MOV AH,09h
MOV DX, offset metka
INT 21h
MOV AX,4C00h
INT 21h
text ends
data segment
metka db "hello,World!",0dh,0ah,"$"
data ends
end begin
1) Изучив процесс разработки программы, выполнили следующие действия: текст программы ввели с помощью текстового редактора Блокнот. Файл сохранили на диск С с расширением asm. (cikl.asm). При использовании пакета TASM получение объектного модуля исходного файла производится программой (ассемблером) tasm.exe. пакет так же сохранили на диск. Трансляция программы cikl.asm выполняется командной строкой вида: TASM.EXE /zi cikl, , , В результате на диске созданы файлы cikl.obj, cikl.lstlist, cikl.crf. Далее - компоновка. Результатом работы компоновщика является создание загрузочного файла с расширением .ехе. Для выполнения примера следует запустить nporpaммy tlink.exe командной строкой вида tlink.exe /v cikl.obj. В результате получится исполняемый модуль с расширением .ехе — cikl.exe. вызываем его с помощью командной строки.
2) Для выполнения второго задания выполняем аналогичные действия, создав файл hello.asm. результат выполнения программы, а так же последовательность команд в командной строке представлены на рисунке 1.
Рисунок 1