Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
І) поиск заданного числа в массиве с элементами размером в один байт. Массив задан в программе и имеет размерность 5х2.Содержание книги
Поиск на нашем сайте
masm model small .stack 100h .data array db 2,5,6,2,5,6,7,2,9,4 ; 2 5 ; 6 2 ; 5 6 ; 7 2 ; 9 4 elem db 8;элемент для поиска failed db 0ah,0dh,'Net takogo elementa v massive!','$' success db 0ah,0dh,'Takou element v massive prisutstvyet ','$' foundtime db 0;количество найденных элементов fnd db " raz(a)",0ah,0dh,'$' .code start: mov ax,@data mov ds,ax xor ax,ax mov si,0;si=столбцы в матрице mov bx,0;bx=строки в матрице mov cx,5;число для внешнего цикла (по строкам) external:;внешний цикл по строкам push cx;сохранение в стеке счетчика внешнего цикла mov cx,2;число для внутреннего цикла (по столбцам) mov si,0 iternal:;внутренний цикл по строкам mov al,array[bx][si] inc si;передвижение на следующий элемент в строке cmp al,elem;сравниваем содержимое текущего элемента в ax с искомым элементом ;если текущий не совпал с искомым, то переход на here для обработки, ;иначе – инкремент счетчика совпадений jne here inc foundtime;иначе - увеличиваем счетчик совпавших here: loop iternal jcxz move_next;просмотрели строку? move_next:;продвижение в матрице pop cx;восстанавливаем CX из стека (5) add bx,2;передвигаемся на следующую строку loop external;цикл (внешний)
cmp foundtime,0h;сравнение числа совпавших с 0 ja eql;если больше 0, то переход not_equal:;нет элементов, совпавших с искомым mov ah,09h;вывод сообщения на экран mov dx, offset failed int 21h jmp exit;на выход eql:;есть элементы, совпавшие с искомым mov ah,09h;вывод сообщений на экран mov dx,offset success int 21h mov ah,02h mov dl,foundtime add dl,30h int 21h mov ah,09h mov dx,offset fnd int 21h exit:;выход mov ax,4c00h;стандартное завершение программы ІІ) Поиск заданного числа в массиве с элементами размером в два байта. Массив задан в программе и имеет размерность 5х2. masm model small .stack 100h .data array dw 10,2,65,2,5,64,70,1,98,42 ; 10 2 ; 65 2 ; 5 64 ; 70 1 ; 98 42 elem dw 98;элемент для поиска failed db 0ah,0dh,'Net takogo elementa v massive!','$' success db 0ah,0dh,'Takou element v massive prisutstvyet ','$' foundtime db 0;количество найденных элементов fnd db " raz(a)",0ah,0dh,'$'
.code
start: mov ax,@data mov ds,ax xor ax,ax mov si,0;si=столбцы в матрице mov bx,0;bx=строки в матрице mov cx,5 mov si,0;число для внешнего цикла (по строкам) external:;внешний цикл по строкам push cx;сохранение в стеке счетчика внешнего цикла mov cx,2;число для внутреннего цикла (по столбцам) mov si,0 iternal:;внутренний цикл по строкам mov ax,array[bx][si] inc si inc si;переходим в строке через 2 байта cmp ax,elem;сравниваем содержимое текущего элемента мас сива с искомым ;если текущий не совпал с искомым, то переход на here для обработки, ;иначе – инкремент счётчика совпадений jne here inc foundtime here: loop iternal jcxz move_next;просмотрели строку? move_next:;продвижение в матрице pop cx;восстанавливаем CX из стека (5) add bx,4;передвигаемся на следующую строку loop external;цикл (внешний)
cmp foundtime,0h;сравнение числа совпавших с 0 ja eql;если больше 0, то переход not_equal:;нет элементов, совпавших с искомым mov ah,09h;вывод сообщения на экран mov dx, offset failed int 21h jmp exit;на выход eql:;есть элементы, совпавшие с искомым mov ah,09h;вывод сообщений на экран mov dx,offset success int 21h mov ah,02h mov dl,foundtime add dl,30h int 21h mov ah,09h mov dx,offset fnd int 21h exit:;выход mov ax,4c00h;стандартное завершение программы int 21h end start
IІІ) Поиск заданного числа в массиве с элементами размером в один байт. При этом массив задаётся пользователем и элемент для поиска тоже задаётся пользователем. На экран при вводе массива выдаётся номер строки и номер столбца вводимого элемента. Масив размерностью в 5х3. masm model small .stack 100h .data array db 15 dup (?) ; 8 8 5 ; 6 2 3 ; 5 6 7 ; 7 2 1 ; 0 8 8 A1 db?;элемент для поиска failed db 0ah,0dh,'Net takogo elementa v massive!','$' success db 0ah,0dh,'Takou element v massive prisutstvyet ','$' foundtime db 0;количество найденных элементов fnd db " raz(a)",0ah,0dh,'$' mes2 db 13,10,'Vvedite element massiva [','$' mes3 db 'Vvedite element dlya poiska',13,10,'$' mes4 db ']',13,10,'$' mm1 db? mm2 db? mm3 db? .code start: mov ax,@data mov ds,ax mov dx,offset mes3 mov ah,09h;функция Dos вывода сообщения на int 21h xor ax,ax mov ah,1h int 21h sub al,'0' mov a1,al
xor ax,ax mov si,0;si=столбцы в матрице mov bx,0;bx=строки в матрице mov cx,5;число для внешнего цикла (по строкам) external:;внешний цикл по строкам push cx;сохранение в стеке счетчика внешнего цикла mov cx,3;число для внутреннего цикла (по столбцам) mov si,0 iternal: mov dx,offset mes2 mov ah,09h;функция Dos вывода сообщения на int 21h xor ax,ax mov ax,bx;выводим на экран номер строки в массиве. Номер ;строки хранится в bx mov dh,3 div dh add al,'0' mov byte ptr [mm1],al mov byte ptr [mm1+1],'$' mov dx,offset mm1 mov ah,09h;функция Dos вывода сообщения на int 21h mov dl,':';ставим двоеточие после номера строки mov byte ptr [mm2],dl mov byte ptr [mm2+1],'$' mov dx,offset mm2 mov ah,09h;функция Dos вывода сообщения на int 21h mov dx,si;после запятой выводим номер столбца, элемент ;которого вводим. Номер столбца хранится в si add dx,'0' mov byte ptr [mm3],dl mov byte ptr [mm3+1],'$' mov dx,offset mm3 mov ah,09h int 21h mov dx,offset mes4 mov ah,09h int 21h xor ax,ax mov ah,1h int 21h sub al,'0' xor dx,dx mov dh,a1 mov array[bx][si],al ;сравниваем содержимое текущего элемента в массиве ;с искомым элементом в dh: cmp array[bx][si],dh jne here; если значение в массиве и значение в dh совпали, то inc foundtime;увеличиваем счетчик совпадений here: inc si;иначе - цикл по строке loop iternal jcxz move_next;просмотрели строку? move_next:;продвижение в матрице pop cx;восстанавливаем CX из стека (5) add bx,3;передвигаемся на следующую строку loop external;цикл (внешний) cmp foundtime,0h;сравнение числа совпавших с 0 ja eql;если больше 0, то переход на метку eql, иначе, если not_equal:;нет элементов, совпавших с искомым mov ah,09h;вывод сообщения на экран mov dx, offset failed int 21h jmp exit;на выход eql:;есть элементы, совпавшие с искомым mov ah,09h;вывод сообщений на экран mov dx,offset success int 21h mov ah,02h mov dl,foundtime add dl,30h int 21h mov ah,09h mov dx,offset fnd int 21h exit:;выход mov ax,4c00h;стандартное завершение программы int 21h
end start
Задание для самостоятельной работы: IV) Написать программу для поиска заданного числа в массиве с элементами размером в два байта. При этом массив должен задаваться пользователем и элемент для поиска тоже должен задаваться пользователем. Элементы массива и элемент для поиска задаётся в шестнадцатиричной системе исчисления. На экран при вводе массива необходимо выдать номер строки и номер столбца вводимого элемента. Масcив размерностью в 5х2. Программа также должна выдать массив на экран в табличном виде.
Лекция №1. Основные понятия. Первая программа для DOS и под Windows. Представление данных в компьютере.
Системная программа - программа, предназначенная для поддержания работоспособности системы обработки информации (СОИ) или повышения эффективности ее использования. Прикладная программа - программа, предназначенная для решения задачи или класса задач в определенной области применения СОИ. Таким образом, системное программирование это разработка программ сложной структуры именно для обеспечения работоспособности или повышения эффективности СОИ. Подразделение программного обеспечения (ПО) предусматривает три градации ПО: - Системное - Промежуточное - Прикладное Промежуточное ПО (middleware) – совокупность программ, осуществляющих управление вторичными (конструируемыми самим ПО) ресурсами, ориентированными на решение определенного (широкого) класса задач. К такому ПО относятся менеджеры транзакций, серверы БД, серверы коммуникаций и другие программные серверы. Системное ПО подразделяется на системные управляющие программы и системные обслуживающие программы. Управляющая программа — системная программа, реализующая набор функций управления, который включает в себя управление ресурсами и взаимодействие с внешней средой СОИ, восстановление работы системы после проявления неисправностей в технических средствах. Программа обслуживания (утилита) — программа, предназначенная для оказания услуг общего характера пользователям и обслуживающему персоналу СОИ. Управляющая программа совместно с набором необходимых для эксплуатации системы утилит составляют операционную систему (ОС). Этапы подготовки программы При разработке программ используется принцип модульности, разбиения сложной программы на составные части, каждая из которых может подготавливаться отдельно.
|
||||
Последнее изменение этой страницы: 2016-09-13; просмотров: 301; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.75.6 (0.01 с.) |