- •1 Составить программу на Asm для очистки экрана
- •2 Cоставить прграмму на Asm для преобразования строчных букв в прописные
- •3 Сост . Прогр . На Asm для нахождения в заданном массиве номера первого числа, равного нулю
- •4 Написать на Asm программу для сохранения текстового экрана в буфере и последующей записи буфера в файл
- •5 В области памяти, адресуемой регистром si нах-ся цепочка семибитных кодов символов….
- •6 Перевод из одной системы исчисления в другую
- •1 Розробити консольну програму, яка відкриває файл порціями по 4Кб та відображае його зміст в вікні. Для роботи з файлами викорастати Win32 Api
- •6 Программа, демонстрирующая синхронизацию доступа к глобальному массиву с пом. Мютексов
- •7 Написать фрагмент программы, которая показывает синхронизацию процессов с помощью семофоров
- •9 Файлы, отображаемые в памяти
- •10 Фрагмент программы для, демонстрирующий обмен данными, с помощью сообщения wm_copydata ( фрагмент выделен жирным шрифтом)
- •ОПиАя и ооп
- •12.4 Дан файл символов построить частотный словарь, представив его виде бинарного дерева поиска и составить линейно скобочную запись.
- •13.4 Дан файл, компоненты которого являются действительными числами. Сформировать линейный список и
- •14.4 // Дан файл символов. Сформировать линейный список. Просмотреть линейный список из головы и составить из
- •15.4 Дан текстовый файл, состоящий только из латинских букв. Необходимо инвертировать каждую строку файла, используя стек, и записать полученные строки в другой файл.
- •16.4 Представить многочлен в виде линейного списка. Написать прогу кот выполняет сложение многочленов
- •17.4 Написать процедуру, которая осуществляет сложение целых чисел произвольной длины(двухсвязный список)
- •22.4 Дан файл целых чисел компоненты которого различны, сформировать циклический линейный список, задать число n и удалять n-ый элемент в списке пока не останется 1
- •23.4 // Вычислить значение арифметического выражения, преобразовав его в постфиксную форму. Предусмотреть со скобками и без скобок.(со стеком)
- •24.4 // Сформировать числовой файл и отсортировать его компоненты с помощью двух стеков.
- •25.4 Дан файл символов сформировать дерево поиска описав процедуру удаления элнмента из дерева и функцию подсчета листьев в дереве.
- •35.4 Вычислить значение арифметического выражения, преобразовав его в постфиксную форму. Предусмотреть со скобками и без скобок.(со стеком)
- •44.4 Написать процедуру которая обращает данный список
- •45.4 Написать процедуру которая по линейно скобочной записи строит бинарное дерево поиска
- •46.4) Написать процедуру для подсчета листьев в бинарном дереве поиска
- •9. Побудувати параметризований клас черги.
ASSAMBLER
1 Составить программу на Asm для очистки экрана
.model small
.stack 100h
.code
mov ax,0600h ; 6-я ф-ция
mov bh,07 ; атрибуты символов
mov cx,0000h ; 0x0 - верхний левый угол
mov dx,184fh ; 24x79 - нижний правый угол
int 10h
mov ah, 4ch
int 21h
end
2 Cоставить прграмму на Asm для преобразования строчных букв в прописные
Строчные – 61h – 7Ah
Прописные – 41h - 5Ah
a -> 01100001 ; z ->01111010
A-> 01000001 ; Z ->01011010
.model small
.stack 100h
.data
N equ 10
Stroka db ‘askdienckd’
.code
Start:
Mov ax,@data
Mov ds,ax
Xor ax,ax
Mov cx,N
Lea bx,Stroka
M1: mov al,[bx]
Cmp al,61h
Jb Next
Cmp al,7ah
Ja next
And al,11011111b
Mov [bx],al
Next:
inc bx
dec cx
jnz M1
exit:
mov ax,4c00h
int 21h
end start
3 Сост . Прогр . На Asm для нахождения в заданном массиве номера первого числа, равного нулю
.model small
.stack 100h
.data
Mas db 4,6,3,2,67,4,5,0,2,3,4
Len=$-Mas
Res db ?
.code
mov ax,@data
mov ds,ax
mov cx,Len
lea bx,Mas
xor ax,ax
L1: mov al,[bx]
inc ah
cmp al,0
je L2
inc bx
loop L1
L2: lea bx,Res
mov [bx],ah
mov ah, 4ch
int 21h
end
4 Написать на Asm программу для сохранения текстового экрана в буфере и последующей записи буфера в файл
Data segment
Buffer db 25 dup ( 80 dup (‘*’),13,10 )
Path db ‘c:\td\buffer.txt’,0
Handle dw ?
Data ends
Code segment
Assume cs:code, ds:data
Start proc far
Int 20h
Push ds
Sub ax,ax
Push ax
mov ax,data
mov ds,ax
push ds
pop es
lea di,buffer
cld
Mov bh , 0 ; указатель на страницу
Mov dh,0 ; указатель на строку
Cikl1: Mov dl,0 ; указатель на столбец
Mov cx,80
Cikl2:Mov ah,2h ; уст . курсора
Int 10h
Mov ah,8h ; чтение символа
Int 10h
Stosb ; es:di <- al
Inc dl
Loop Cikl2
Inc dh
Add di,2 ; проскочить 13 10
Cmp dh,25
jl Cikl1
Lea dx,path ; открыть файл
Mov al,1 ; вид доступа “запись”
Mov ah,3dh
Int 21h
Jc open_er
Mov handle , ax ; запись файлового индекса
Mov bx,ax
Sub cx,cx ; нулевое смещение
Sub dx,dx ; нулевое смещение
Mov al,2 ; смещ . от кон. ф.
Mov ah,42h ; уст. файловый указатель
Int 21h
Jc pointer_er
Mov ah,40h ; запись в файл 2050 байт из буфера
Mov bx,handle
Mov cx,2050
Lea dx,buffer
Int 21h
Jc outp_er
Cmp ax,2050
Jne full_disk
Mov bx,handle ; закрыть файл
Mov ah ,3eh
Int 21h
Full_disk:retf
Outp_er: retf
Pointer_er: retf
Open_er: retf
Start endp
Code ends
End start
5 В области памяти, адресуемой регистром si нах-ся цепочка семибитных кодов символов….
----------------------
Xor ah,ah
Start:
Mov al,[si]
And al,al ; установка флагов, отлв конца цепочки
Jz exit
Jp pf1 ; четное число единиц?
Or al,80h ; нет – записать 1 в старший бит
Pf1:
Mov [si],al ; вернуть символ в цепочку
Xor ah,al ; учесть в контрольном байте
Inc si
Jmp start
Exit:
Mov [si],ah
6 Перевод из одной системы исчисления в другую
.model small
.stack 100h
.data
number DW 47
base DW 16
str_res DB 'Результат: $'
.code
start:
my_proc PROC
mov ax, @Data
mov ds, ax
lea dx,str_res
mov ah,9h
int 21h
call convert
mov ah, 4ch
int 21h
my_proc ENDP
convert PROC
push ax
push cx
push dx
mov ax, @Data
mov ds, ax
mov ax, number
sub cx, cx
again:
sub dx, dx
div base
inc cx
cmp ax, 0
jne again
output:
pop dx
add dx, 30h
cmp dx
jle number_9
number_9:
mov ah, 2
int 21h
loop output
pop dx
pop cx
pop ax
ret
convert ENDP
7. Программа на Asm . Заданы две строки, скопировать в 3-ю те символы первой, кот . есть во второй. Определить число символов в результирующей строке.
.model small
.Stack 100h
.data
String1 db ‘ab123cd45’
String2 db ‘0123456789’
N1 db 9 ; длина 1-й строки
N1 db 10 ; длина 2-й строки
Res db 9 dup (?)
N db ?
.code
Mov ax,@data
Mov ds,ax
Lea di,res
Mov ax,0
Mov cx,n1
Lea si,string1
Fori: push cx
Lea bx,string2
Mov cx,n2
Forj: mov dl,[si]
Cmp dl,[bx]
Jne nextj
Mov [di],dl
Inc ax
Inc di
Jmp breakj
Nextj: inc bx
Loop forj
Breakj: pop cx
Inc si
Loop fori
Mov n,ax
Mov ah,4ch
Int21h
end
СПИОС