Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Написать на Asm программу для сохранения текстового экрана в буфере и последующей записи буфера в файл




ASSAMBLER

Составить программу на 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

 

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

 

Сост. прогр. на 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

Написать на 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






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных