Автор: Пользователь скрыл имя, 15 Мая 2012 в 02:17, контрольная работа
Работа содержит задания по дисциплине "Системное программирование" и овтеты на них
Задание 8 (макроопределение). Используя макроопределение, решить задание 3 (линейные массивы), составить .com файл.
Дан массив N, состоящий из 8 слов. Маскировать единицей 0, 1, 10, 11 разряды каждого элемента массива.
Решение:
prg segment para public 'code'
assume cs:prg,ss:prg,es:prg,ds:prg
org 100h
mas dw 0123, 4576, 231, ...
.code
Start:
mov cx,8
mov si,0
m:AND mas [si], 0F3FDh
inc si
inc si
loop
m
mov ax, 4c00h
int 21h
end Start
Задание 9 (ввод/вывод). Решить задачу, используя функции ввода-вывода, составить .ехе файл
Ввести строку из 10 символов. Заменить в ней все символы “А“ символом “D“.
Решение:
model Small
.Stack 100h
.data
m1 db A,B,C,D,E,F,G,H,J,K
code
Start:
jmp go
mov dl,'D' ;на что заменяем
mov si,offset s
c:mov al,'A' ;что заменяем
cmpxchg ds:[si],dl
inc si
cmp al,'$' ;если дошли до конца строки - выход
jne c
mov ah,9
mov dx,offset s выводим на экран
int 21h
mov ax, 4c00h
int 21h
end Start
Задание 10 (Си/Паскаль). Решить задачу, составив программу на Паскале и Си:
Подсчитать сколько в массиве N элементов больше 36. Результат получить в регистре СХ.
Решение:
model small
.stack 100h
.code
public _kol
_kol proc с near s1:word,s2:word,d:word
mov ax,ds
mov es,ax
mov ax,0
mov d,0
mov cx,36
lea si,s1
lea di,s2
m: mov al,[si]
cmp al,[di]
jnz m1
inc d
m1: inc si
inc di
loop m
mov ax,d
ret
_kol endp
end
Информация о работе Контрольная работа по "Системному программированию"