2 Практический раздел
2.1 Индивидуальное задание практической части
Задача:
Дан
массив из 8 байт. Рассматривая его как
массив логических значений
(true
есть не нулевые биты в байте, false
все биты нулевые), вычислить логическую
формулу:
Решение:
include io.asm
data segment
mas db 8 dup (?) ;исходный массив
x db 8 dup (?)
f dw ?
data ends
code segment
assume CS:code,ds:data
start: mov ax,data
mov ds,ax ;загрузить сегментный адрес данных
;ввод элементов массива
mov cx,8
mov bx, offset mas ;перенос первых байтов массива в ячейку bx
m4: inint ax ;ввод знака целого числа
mov [bx],al ;переходим в [bx],адрес которого лежит в al
inc bx ;увеличение значения bx в регистре
loop m4 ;возвращение на метку m4
mov cx,8
mov bx,offset mas ;в bx записывается адрес начала mas
xor si,si ; обнуление si
m3: mov al,[bx] ;в al записывается начала массива [bx]
cmp al,0 ;сравнение al с 0
je m1 ;прыжок на метку m1
mov x[si],1 ;записывание 1 в x[si]
jmp m2 ;выполнение условного перехода на метку m2
m1: mov x[si],0 ;записывание 0 в x[si]
; outint x[si],2 ;вывод целого числа
m2: inc bx ;увеличение значения bx в регистре
inc si ;увеличение значения si в регистре
loop m3 ;возвращение к метке m3
xor al,al ;обнуление al
mov al,x[7] ;занесли в al значение х[7]
and al,x[6] ;х[7] and x[6]
and al,x[1] ;х[6] and [1]
mov ah,x[6] ;занесли в аh значение х[6]
and ah,x[4] ;х[6] and х[4]
and ah,x[2] ;х[4] and х[2]
and ah,x[1] ;х[2] and х[1]
and ah,x[0] ;х[1] and х[0]
mov bl,x[7] ;занесли в bl значение х[7]
and bl,x[6] ;х[7] and х[6]
and bl,x[3] ;х[6] and х[3]
and bl,x[1] ;х[3] and х[1]
or al,ah
or al,bl
cbw ;расширение байта до ворда
mov f,ax ;переходим с ах на f
outint f ;вывод результата f
finish ;завершение программы
;стандартное завершение программы
;mov ah,4ch
;int 21h
code ends
end start
Заключение
В ходе выполнения курсовой работы были изучены основные сведения о языке Ассемблер. В основные сведения входили структура и компоненты программы на Ассемблере, формат команд, представление данных в памяти, режим адресации, рассмотрение программ-дизассемблер и др.
Повторили виды битовых операций, логику и формат логических команд Ассемблера.
Рассмотрели примеры использования логических команд в Ассемблере.
Сделали решение и описание задачи. Предоставили скрин индивидуального задания с применением логических битовых операций в Ассемблере.
Все поставленные задачи решены.
Список литературы
http://progopedia.ru/language/assembler/
Аблязов Р.- Программирование на Ассемблере на платформе х86,х64, 2011 г.
Столяров А.- Программирование на языке Ассемблера Nasm для OC Unix, 2011 г.
Владислав Пирогов.- Ассемблер и дизассемблирование. 2006 г.,464 стр.
Калашников О.А.- Ассемблер? Это просто!, 2008 г.
https://bobych.ru/lection/informatika/glava2.html
Вострикова З.П.- Программирование на языке ассемблера ЕС ЭВМ. М.: Наука, 1985г.
Юров В., Хорошенко С., Assembler : учебный курс. 2000 г., 672 стр.
