Формирование массива из 10 двухбайтных чисел, найти номер максимального числа

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

Красноярский Государственный Технический Университет

Лабораторная работа по ЦУиМП №1

ИЗУЧЕНИЕ СТАНДАРТНЫХ ФУНКЦИЙ ПРЕРЫВАНИЯ DOS

выполнил:

студент гр. Р53-4 : Титов Д. С.

проверил:

Тронин О.А.

Красноярск 2006

Цель работы

Знакомство со стандартными функциями прерывания DOS, вывод информации на дисплей, ввод данных с клавиатуры и запись в фаил.

Ход работы

Задание  (Вариант № 13) Сформировать массив из 10 двухбайтных чисел. Найти номер  максимального числа. 

Блок-схема программы:

Программа

model small

.stack 100h

.data

soob db "vvedite shesnadsaterichnoe chislo bolshimi bykvami  $"

s1 db "  $"

a1 db 0,0,0,0

b1 db 0,0,0,0

c1 dw 0,0,0,0

summ dw 0,0,0,0,0,0,0,0,0,0

adr_a1 dw 0

adr_b1 dw 0

adr_c1 dw 0

adr_summ dw 0

m dw 0

n dw '$',0,'$'

qw dw 0

rt dw 0

.code

.startup

     mov dx,offset soob

     mov ah,9

     int 21h

               lea bx,a1

               mov adr_a1,bx

     lea bx,b1

     mov adr_b1,bx

               lea bx,c1

               mov adr_c1,bx      

     lea bx,summ

     mov adr_summ,bx

               mov ax,10

               mov rt,ax

NACH:

     xor si,si       

     mov cx,4

M1:

     mov ah,1

     int 21h

     mov bx,adr_a1

     mov [bx+si],al

     inc si

     loop M1

               xor si,si

               mov cx,4

M2:

     mov bx,adr_a1

     mov dl,[bx+si]

     cmp dl,39h

     jbe MM1

     sub dl,7h

MM1:

     sub dl,30h

     mov bx,adr_b1

     mov [bx+si],dl

     inc si

               loop M2

     xor ax,ax

     mov bx,adr_b1

     mov al,[bx]

     shl ax,12

     mov bx,adr_c1

     mov [bx],ax

               xor ax,ax

               mov bx,adr_b1

               mov al,[bx+1]

               shl ax,8

               mov bx,adr_c1

               mov [bx+2],ax

     xor ax,ax

     mov bx,adr_b1

     mov al,[bx+2]

     shl ax,4

     mov bx,adr_c1

     mov [bx+4],ax

               xor ax,ax

               mov bx,adr_b1

               mov al,[bx+3]

               mov bx,adr_c1

               mov [bx+6],ax

     xor ax,ax

     mov cx,4

     xor si,si

M3:

     mov bx,adr_c1

     add ax,[bx+si]

     add si,2

     loop M3

               mov di,qw

               mov bx,adr_summ

               mov [bx+di],ax

               add di,2

               mov qw,di

     mov dx,rt

     dec dx

     mov rt,dx

     cmp dx,0

     je MTK0

               xor ax,ax

               mov dx,offset s1

               mov ah,9

               int 21h

     jmp NACH

MTK0:

     mov bx,adr_summ

     mov dx,[bx]

     mov m,dx

     mov cx,10

     xor si,si

               mov dx,0

               mov n,dx

MTK1:

     mov bx,adr_summ

     mov dx,m

     mov ax,[bx+si]

     cmp dx,ax

     jb MTK2

     jmp MTK3

MTK2:

     mov dx,[bx+si]

     mov m,dx

     mov n,si

MTK3:

               add si,2

               loop MTK1

     mov dx,n

     shr dx,1

     mov n,dx

                         xor ax,ax

                         mov dx,offset s1

                         mov ah,9

                         int 21h

     mov bx,n

     add bx,30h

     mov n,bx

     xor ax,ax

     mov dx,offset n

     mov ah,9

     int 21h

.exit 0

end

Задание       (Вариант № 3) Сформировать массив из 10 двухбайтных чисел. Переписать во второй массив все нечетные числа.

Блок-схема программы:

Программа

model small

.stack 100h

.data

mass_2 dw 0,0,0,0,0,0,0,0,0,0

s1 db "  $"

x1 db 0,0,0,0

y1 db 0,0,0,0

rt2 dw 0

qw2 dw 0

zx2 dw 0

bv2 dw 0

itog1 dw 0,0,0,0,0,0,0,0,0,0

itog2 dw '$',0,'$',0,'$',0,'$',0,'$',0,'$',0,'$',0,'$',0,'$',0,'$',0,'$'

adr_mass_2 dw 0

adr_x1 dw 0

adr_y1 dw 0

adr_itog1 dw 0

adr_itog2 dw 0

soob db "vvedite shesnadsaterichnoe chislo bolshimi bykvami  $"

a1 db 0,0,0,0

b1 db 0,0,0,0

c1 dw 0,0,0,0

summ dw 0,0,0,0,0,0,0,0,0,0

adr_a1 dw 0

adr_b1 dw 0

adr_c1 dw 0

adr_summ dw 0

qw dw 0

rt dw 0

.code

.startup

     mov dx,offset soob

     mov ah,9

     int 21h

               lea bx,a1

               mov adr_a1,bx

     lea bx,b1

     mov adr_b1,bx

               lea bx,c1

               mov adr_c1,bx      

     lea bx,summ

     mov adr_summ,bx

               mov ax,10

               mov rt,ax

NACH:

     xor si,si       

     mov cx,4

M1:

     mov ah,1

     int 21h

     mov bx,adr_a1

     mov [bx+si],al

     inc si

     loop M1

               xor si,si

               mov cx,4

M2:

     mov bx,adr_a1

     mov dl,[bx+si]

     cmp dl,39h

     jbe MM1

     sub dl,7h

MM1:

     sub dl,30h

     mov bx,adr_b1

     mov [bx+si],dl

     inc si

               loop M2

     xor ax,ax

     mov bx,adr_b1

     mov al,[bx]

     shl ax,12

     mov bx,adr_c1

     mov [bx],ax

               xor ax,ax

               mov bx,adr_b1

               mov al,[bx+1]

               shl ax,8

               mov bx,adr_c1

               mov [bx+2],ax

     xor ax,ax

     mov bx,adr_b1

     mov al,[bx+2]

     shl ax,4

     mov bx,adr_c1

     mov [bx+4],ax

               xor ax,ax

               mov bx,adr_b1

               mov al,[bx+3]

               mov bx,adr_c1

               mov [bx+6],ax

     xor ax,ax

     mov cx,4

     xor si,si

M3:

     mov bx,adr_c1

     add ax,[bx+si]

     add si,2

     loop M3

               mov di,qw

               mov bx,adr_summ

               mov [bx+di],ax

               add di,2

               mov qw,di

     mov dx,rt

     dec dx

     mov rt,dx

     cmp dx,0

     je MTK0

               xor ax,ax

               mov dx,offset s1

               mov ah,9

               int 21h

     jmp NACH

MTK0:

               lea bx,summ

               lea di,mass_2

     mov cx,10

     xor si,si

     xor bp,bp

MK1:

     clc

     mov ax,[bx+si]

     shr ax,1                                                                                                        !

     jc MK2

     jmp MK3

MK2:

     mov dx,[bx+si]

     mov [di+bp],dx

     add bp,2

MK3:

     add si,2

     loop MK1

               lea bx,x1

               mov adr_x1,bx

     lea bx,y1

     mov adr_y1,bx

               lea bx,mass_2

               mov adr_mass_2,bx       

     xor ax,ax

     mov dx,offset s1

     mov ah,9

     int 21h

     int 21h

     int 21h

     int 21h

                                              mov ax,0

                                              mov qw2,ax

                                              mov zx2,ax

               mov ax,10

               mov rt2,ax

P_NACH:

                                   mov di,qw2

               xor ax,ax

               mov bx,adr_mass_2

               mov al,[bx+di]

               shr ax,4

               mov bx,adr_x1

               mov [bx],al

     xor ax,ax

     mov bx,adr_mass_2

     mov al,[bx+di]

     and al,00001111b

     mov bx,adr_x1

     mov [bx+1],al

               xor ax,ax

               mov bx,adr_mass_2

               mov al,[bx+1+di]

               shr ax,4

               mov bx,adr_x1

               mov [bx+2],al

     xor ax,ax

     mov bx,adr_mass_2

     mov al,[bx+1+di]

     and al,00001111b

     mov bx,adr_x1

     mov [bx+3],al

               mov cx,4

               xor si,si

M11:

     xor ax,ax

     mov bx,adr_x1

     mov al,[bx+si]

     cmp al,9

     jbe M22      

     add al,7h     

M22:

     add al,30h

     mov bx,adr_y1

     mov [bx+si],al

     inc si

     loop M11

                         lea bx,itog1

                         mov adr_itog1,bx

                         lea bx,itog2

                         mov adr_itog2,bx

     mov di,qw2

     add di,2

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.