46868 (607964)

Файл №607964 46868 (Ассемблер и программирование)46868 (607964)2016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

Содержание



Задание 2

  1. Блок-схема к заданию 1 3

  2. ASM 1 4

  3. Блок-схема к заданию 2 7

  4. ASM 2 8

  5. Блок-схема к заданию 3 11

  6. ASM 3 12

  7. Блок-схема к заданию 4 16

  8. ASM 4 17

  9. Блок-схема к заданию 5 19

  10. ASM 5 20

  11. Блок-схема к заданию 6 23

  12. ASM 6 24

  13. KOMP.CPP 26

  14. Руководство пользователя 36

Список литературы 39



Задание



Информатика - курсовое задание, вариант 1

Три байтовые переменные A, B, и C содержат целые значения. Упорядочить эти значения по возрастанию так, чтобы A содержала минимальное значение, а С - максимальное.

Задан байтовый массив из N элементов в неупакованном BCD формате. Написать процедуру преобразования исходного массива

Задан байтовый массив из N элементов. Написать процедуру, отыскивающую: номер максимального и минимального элементов, а также разность между максимальным и минимальным элементами.

Написать процедуру нормализации значения, содержащегося в AX. Нормализация заключается в сдвиге содержимого AX влево до тех пор, пока старший из битов, имеющих значение 1, не попадет в 15-й разряд. Если же сразу (AX)=0 или 15-й разряд содержит 1, то процедура не должна выполняться. При выходе из процедуры регистр BX должен содержать число, равное количеству выполненных сдвигов.

Считая содержимое регистров DX:AX 32-битной величиной, написать программу, загружающую в регистр DL номер самого младшего бита, содержащего 1.

Индивидуальное задание: определить размер файла из DTA.



1. Блок-схема к заданию 1





2. ASM 1



mes macro msg

mov ah,9

lea dx,msg

int 21h

endm

abc macro char

add char,'0'

mov dl,char

mov ah,2

int 21h

sub char,'0'

endm

d_seg segment

a db 5

b db 9

c db 3

str db 'Ishodnie dannie:',10,13,'$'

str2 db 'Resultat sortirovki po vozrastaniyu',10,13,'$'

str3 db 'Press any key.........$'

enter db 10,13,'$'

space db ' ','$'

strA db 'A=','$'

strB db 'B=','$'

strC db 'C=','$'

d_seg ends

c_seg segment

assume ds:d_seg,cs:c_seg

start:mov ax,d_seg

mov ds,ax

mes enter

mes str

mes enter

mes strA

abc a

mes space

mes strB

abc b

mes space

mes strC

abc c

mes enter

mov al,a

mov bl,b

mov cl,c

cmp al,bl

jl continue

xchg al,bl

continue:

cmp al,cl

jl continue2

xchg al,cl

continue2:

cmp bl,cl

jl continue3

xchg bl,cl

continue3:

mov a,al

mov b,bl

mov c,cl

mes enter

mes str2

mes enter

mes strA

abc a

mes space

mes strB

abc b

mes space

mes strC

abc c

mes enter

mes enter

mes str3

mov ah,1

int 21h

mov ah,4ch

int 21h

c_seg ends

end start







3. Блок-схема к заданию 2





4. ASM 2



mes macro msg

mov ah,9

lea dx,msg

int 21h

endm

dseg segment

k dw 10

mdb10

masdb1,3,6,8,9,1,4,7,2,3,7,9,4,5,8,9

str db 'Ishodnii massiv elementov v neupakovannom BCD formate:',10,13,'$'

str1 db 10,13,'Poluchenii massiv elementov v ypakovannom BCD formate:',10,13,'$'

str2 db 10,13,'Press any key.........',10,13,'$'

enter db 10,13,'$'

space db ' $'

dseg ends

cseg segment

assume cs:cseg, ds:dseg

vivod proc

xor cx,cx

k_del:

mov dx,0

div k

add dx,'0'

push dx

inc cx

cmp ax,0

jne k_del

k3:

pop dx

mov ah,2

int 21h

loop k3

ret

vivod endp

abcproc

xorsi,si

xordi,di

movbx,16

movcx,16

decbx

m2:

moval,mas[si]

mulm

incsi

addal,mas[si]

movmas[di],al

cmpsi,bx

jem1

incdi

incsi

loop m2

m1:

ret

abcendp

start:

movax,dseg

movds,ax

mes enter

mes str

mes enter

mov bx, 0

met2: mov al, mas[bx]

mov ah,0

call vivod

mes space

inc bx

cmp bx,15

jle met2

call abc

mes enter

mes str1

mes enter

mov bx, 0

met1: mov al, mas[bx]

mov ah,0

call vivod

mes space

inc bx

cmp bx,7

jle met1

mes enter

mes str2

mov ah,1

int 21h

movah, 4ch

int21h

cseg ends

end start





5. Блок-схема к заданию 3









6. ASM 3



char1 macro b

add b,'0'

mov dl,b

mov ah,2

int 21h

sub b, '0'

endm

char macro a

xor dx, dx

mov ax, a

mov bx, 10

div bx

add dl,'0'

mov ah, 2

int 21h

endm

mes macro str

mov ah,9

lea dx,str

int 21h

endm

d_seg segment

mindb0

maxdb0

n_mindw1

n_maxdw1

razdb0

adb2,6,4,1,7,9,3

n=$-a

enter db 10,13,'$'

str db 10,13,'Ishodnii massiv: $'

str1 db 10,13,'Resultat: $'

str2 db 10,13,'Number min chisla: $'

str3 db 10,13,'Number max chisla: $'

str4 db 10,13,'Raznost mezhdu max i min chislami: $'

str5 db 10,13,'Press any key........$'

space db ' $'

d_seg ends

c_seg segment

assume cs:c_seg, ds:d_seg

start:

movax,d_seg

movds,ax

xorsi,si

moval,a[si]

movmin,al

movmax,al

incsi

m3:

moval,a[si]

cmpal,max

jlem1

movmax,al

movbx,si

incbx

movn_max,bx

m1:

cmpal,min

jgem2

movmin,al

movbx,si

incbx

movn_min,bx

m2:

incsi

cmpsi,n

jlm3

moval,max

subal,min

movraz,al

mes str

mes enter

xor si,si

povtor:

char1 a[si]

mes space

inc si

cmp si,n

jne povtor

mes enter

mes str1

mes enter

mes str2

char n_min

mes enter

mes str3

char n_max

mes enter

mes str4

char1 raz

mes enter

mes enter

mes str5

mov ah, 1

int 21h

movah,4ch

int21h

c_seg ends

end start





7. Блок-схема к заданию 4



8. ASM 4



mes macro str

mov ah,9

lea dx,str

int 21h

endm

dseg segment

str db 10,13,'AX soderzhit znachenie 2345h$'

str1 db 10,13,'Posle normalizacii znacheniya AX, BX soderzhit chislo vipolnenih sdvigov$' $'

str2 db 10,13,'BX = $'

str3 db 10,13,'Press any key........$'

enter db 10,13,'$'

x dw 2345h

dseg ends

cseg segment

assume cs:cseg, ds:dseg

start: mov ax,dseg

mov ds,ax

mov ax,x

push ax

xor dx, dx

cmp ax, dx

je exit

xor si, si

cont: mov cx, 2

mov dx, 1000000000000000b

mov bx, ax

or bx, dx

cmp bx, ax

je exit

inc si

shl ax, 1

loop cont

exit: mes str

mes enter

mes str1

mes enter

mes str2

mov bx,si

xor dx,dx

push bx

mov ax,bx

mov bx,10

div bx

add dx,'0'

mov ah,2

int 21h

pop ax

pop bx

mes enter

mes str3

mov ah,1

int 21h

mov ah, 4ch

int 21h

cseg ends

end start





9. Блок-схема к заданию 5



10. ASM 5



mes macro msg

mov ah,9

lea dx,msg

int 21h

endm

d_seg segment

k dw 10

str1 db 'Registr AX soderzhit 0110000b, a registr DX soderzhit 1000100b',10,13,'$'

str2 db 'Nomer samogo mladshego bita, soderzhaschego 1',10,13,'$'

str3 db 10,13,'Press any key......',10,13,'$'

enter db 10,13,'$'

d_seg ends

c_seg segment

assume ds:d_seg, cs:c_seg

vivod proc

xor cx,cx

k_del:

sub dx,dx

div k

add dx,'0'

push dx

inc cx

cmp ax,0

jne k_del

k3:

pop dx

mov ah,2

int 21h

loop k3

ret

vivod endp

start:

mov ax, d_seg

mov ds, ax

mov ax, 0110000b

mov dx, 1000100b

nachalo:

clc

rcr ax, 1

inc bx

jc vivod1

cmp ax,0

jne nachalo

mov bx,7

m1:

clc

rcr dx, 1

inc bx

jc vivod1

cmp dx,0

jne m1

vivod1:

mes enter

mes str1

mes enter

mes str2

mes enter

mov dl, bl

mov ax, dx

call vivod

mes enter

mes str3

mov ah,1

int 21h

mov ah, 4ch

int 21h

c_seg ends

end start





11. Блок-схема к заданию 6



12. ASM 6



mes macro str

mov ah,9

lea dx,str

int 21h

endm

dseg segment

ten dw 10

filename db 8 dup(0)

dta db 2ch dup(' '),0,10,13,'$'

error db 10,13,'File not found',10,13,'$'

exit db 10,13,'Press any key........$'

inp db 'Input filename:',10,13,'$'

out1 db 10,13,10,13,'Size file in DTA:',10,13,10,13,'$'

out2 db 'FILE_NAME - $'

out3 db 'FILE_SIZE - $'

out4 db ' bytes',10,13,'$'

dseg ends

cseg segment

assume cs:cseg, ds:dseg

start: mov ax,dseg

mov ds,ax

mes inp

mov ah,1ah

lea dx,dta

int 21h



xor si,si

povtor: mov ah, 1

int 21h

cmp al, 13

je ok

mov filename[si], al

inc si

jmp povtor



ok:mov ah,4eh

lea dx,filename

mov cx,0

int 21h

jc err

mes out1

mes out2

mes dta[1eh]

mes out3



mov dx,word ptr dta[1ah]+2

mov ax,word ptr dta[1ah]

mov cx,0

jmp next

l1:mov dx,0

next:div ten

push dx

inc cx

cmp ax,0

jne l1

n: pop dx

add dx,'0'

mov ah,2

int 21h

loop n



mes out4

jmp quit



err:mes error

quit:mes exit

mov ah,1

int 21h

mov ah,4ch

int 21h

cseg ends

end start





13. KOMP.CPP



#include

#include

#include

#include

#include

#include

#include

#include

void pomehi(int x, int y, int i)

{

setcolor(i);

line(x-100,y-60,x-80,y-60);

line(x-60,y-50,x-40,y-50);

line(x-20,y-60,x,y-60);

line(x+20,y-50,x+40,y-50);

line(x+60,y-60,x+80,y-60);

line(x-100,y-20,x-80,y-20);

line(x-60,y-10,x-40,y-10);

line(x-20,y-20,x,y-20);

line(x+20,y-10,x+40,y-10);

line(x+60,y-20,x+80,y-20);

line(x-100,y+20,x-80,y+20);

line(x-60,y+30,x-40,y+30);

line(x-20,y+20,x,y+20);

line(x+20,y+30,x+40,y+30);

line(x+60,y+20,x+80,y+20);

line(x-100,y+60,x-80,y+60);

line(x-60,y+70,x-40,y+70);

line(x-20,y+60,x,y+60);

line(x+20,y+70,x+40,y+70);

line(x+60,y+60,x+80,y+60);

}

void komp(int x, int y)

{

int i;

///////////////monitor////////////////

i=8;

Характеристики

Тип файла
Документ
Размер
8,36 Mb
Тип материала
Учебное заведение
Неизвестно

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6547
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее