Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Федеральное государственное образовательное учреждение
высшего профессионального образования
СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ
ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ
Кафедра: «Радиотехника»
Лабораторная работа №1
Выполнил:
Студент гр. Р54-4
Александров А. В.
Проверил:
Тронин О. А.
Красноярск 2007
model small ; директива модели памяти с параметром small
.data ; упрощенная директива сегмента данных
mass1 dw 10 dup (0) ; инициализация двухбайтного 10-элементного массива mass1
mass2 dw 10 dup (?) ; выделение памяти под двухбайтный 10-элементный массив mass2
buff db 8 dup (8) ; буфер ввода buff
mess1 db "Please enter 10 positive integers (0...65535): $" ; символьная цепочка mess1
mess2 db "chetnbIe chisla: $" ; символьная цепочка mess2
.stack 256h ; упрощенная директива для 256-байтного сегмента стека
.code ; упрощенная директива сегмента кода
innum proc ; начало процедуры innum
mov dx,offset buff ; инициализация dx адресом начала буфера ввода buff
mov ah,0Ah ; формирование функции буферизованного ввода с клавиатуры
int 21h ; программное прерывание типа 21h
mov dx,10 ; инициализация dx символом "Line Feed" ("Перевод Строки")
mov ah,02h ; формирование функции вывода единичного символа на экран
int 21h ; программное прерывание типа 21h
xor ax,ax ; очистка регистра ax
mov cl,buff[1] ; в младший байт регистра cx помещается число введенных символов
mov dl,buff[1] ; в младший байт регистра dx помещается число введенных символов
mov si,2 ; инициализация индексного регистра si двойкой
push 1 ; запись в стек числа 1
dec dl ; декремент dl
cmp dl,0 ; сравнение вида dl=0, и если true, то...
je stend ; ...переход на метку stend
push 10 ; запись в стек числа 10
dec dl ; декремент dl
cmp dl,0 ; сравнение вида dl=0, и если true, то...
je stend ; ...переход на метку stend
push 100 ; запись в стек числа 100
dec dl ; декремент dl
cmp dl,0 ; сравнение вида dl=0, и если true, то...
je stend ; ...переход на метку stend
push 1000 ; запись в стек числа 1000
dec dl ; декремент dl
cmp dl,0 ; сравнение вида dl=0, и если true, то...
je stend ; ...переход на метку stend
push 10000 ; запись в стек числа 10000
dec dl ; декремент dl
cmp dl,0 ; сравнение вида dl=0, и если true, то...
je stend ; ...переход на метку stend
stend: ; пользовательская метка stend
mov al,buff[si] ; запись в al si-ого символа буфера buff
sub al,30h ; разность вида ax:=al-30h
mov ah,0 ; обнуление ah
pop bx ; запись в регистр bx верхнего элемента стека
mul bx ; умножение вида (dx:ax):=ax*bx
add mass1[di],ax ; сумма вида mass1[di]:=mass1[di]+ax
inc si ; инкремент si
loop stend ; если cx еще не равно нулю, то cx:=cx-1 и переход к метке stend
ret ; возврат в основную процедуру
innum endp ; конец процедуры innum
outnum proc ; начало процедуры outnum
mov ah,9 ; формирование функции вывода строки на экран
mov dx,offset mess2 ; инициализация dx адресом начала символьной цепочки mess2
int 21h ; программное прерывание типа 21h
mov si,0 ; инициализация индексного регистра si нулем
star0: ; пользовательская метка star0
mov cx,0 ; инициализация счетчика cx нулем
mov ax,mass2[si] ; запись в регистр ax si-ого элемента массива array2
star1: ; пользовательская метка star1
xor dx,dx ; очистка dx
mov bx,10 ; запись в регистр bx числа 10
div bx ; деление вида (ax.dx):=ax/bx
mov bx,dx ; запись старшей части результата деления в bx
push bx ; запись содержимого bx в стек
inc cx ; инкремент cx
cmp ax,0 ; сравнение вида ax=0, и если false, то...
jne star1 ; ...переход на метку star1
star2: ; пользовательская метка star2
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.