Контрольная работа по "Системному программированию"

Автор: Пользователь скрыл имя, 15 Мая 2012 в 02:17, контрольная работа

Краткое описание

Работа содержит задания по дисциплине "Системное программирование" и овтеты на них

Файлы: 1 файл

Контрольная работа.doc

— 70.00 Кб (Скачать)

    Задание 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


Информация о работе Контрольная работа по "Системному программированию"