Главная страница
Навигация по странице:

  • Лабораторная работа №1 Изучение команд передачи данных и работы со стеком процессора 1. Цель работы

  • Цель работы

  • Контрольные вопросы: Какое действие выполняет команда mov ax,@data

  • Лабораторная работа №5 Организация циклов в процессоре 1. Цель работы

  • Лабораторная работа 1 Изучение команд передачи данных и работы со стеком процессора


    Скачать 37.48 Kb.
    НазваниеЛабораторная работа 1 Изучение команд передачи данных и работы со стеком процессора
    Дата07.02.2023
    Размер37.48 Kb.
    Формат файлаdocx
    Имя файла1 masm.docx
    ТипЛабораторная работа
    #924057

    Колледж информационных технологий и экономики КБГУ

    Им. Х.М. Бербекова

    Отчет по лбараторным работам

    по дисциплине «Микропроцессорные системы»

    Выполнил:

    Гергов Аскер Амирханович

    Принял:

    Тлупов З.А.


    Нальчик-2022
    Лабораторная работа №1

    Изучение команд передачи данных и работы со стеком процессора

    1. Цель работы: изучить порядок выполнения команд передачи данных и

    работы со стеком процессором.

    2. Выполнение работы:

    Задание1: оттранслировать нижеследующую программу на Ассемблере и

    записать ее листинг. Используя отладчик, записать в таблицу изменения

    регистров AX, BX, CX, SP, исполняя программу по шагам.

    Задание 2: объяснить изменение данных в полученной таблице.
    1 masm

    2 0000 model small

    3 0000 .Stack 100h

    4 0000 .Data

    5 0000 05 p1 db 5h

    6 0001 0005 p2 dw 5h

    7 0003 FB p3 db-5h

    8 0004 .code

    9 0000 start:

    10 0000 B8 0000s mov ax,@data

    11 0003 8E D8 mov ds,ax

    12 0005 8A 26 0000r mov ah,p1

    13 0009 A1 0001r mov ax,p2

    14 000C A0 0003r mov al,p3

    15 000F 8A 26 0000r mov ah,p1

    16 0013 A0 0000r mov al,p1

    17 0016 BB 0001r mov bx, offset p2

    18 0019 8B 07 mov ax,[bx]

    19 001B B4 FF mov ah,0ffh

    20 001D B0 FF mov al,0ffh

    21 001F B8 0001 mov ax,1

    22 0022 BB 0002 mov bx,2

    23 0025 B9 0003 mov cx,3

    24 0028 50 push ax

    25 0029 53 push bx

    26 002A 51 push cx

    27 002B 58 pop ax

    28 002C 58 pop ax

    29 002D 58 pop ax

    30 002E B8 4C00 mov ax,4c00h

    31 0031 CD 21 int 21h

    end start


    Шаг

    AX

    BX

    CX

    SP

    1

    0000

    0000

    0000

    0100

    2

    087D

    0000

    0000

    0100

    3

    087D

    0000

    0000

    0100

    4

    058D

    0000

    0000

    0100

    5

    0005

    0000

    0000

    0100

    6

    00FB

    0000

    0000

    0100

    7

    05FB

    0000

    0000

    0100

    8

    0505

    0000

    0000

    0100

    9

    0505

    0001

    0000

    0100

    10

    0005

    0001

    0000

    0100

    11

    FF05

    0001

    0000

    0100

    12

    FFFF

    0001

    0000

    0100

    13

    0001

    0001

    0000

    0100

    14

    0001

    0002

    0000

    0100

    15

    0001

    0002

    0003

    0100

    16

    0001

    0002

    0003

    00FE

    17

    0001

    0002

    0003

    00FC

    18

    0001

    0002

    0003

    00FA

    19

    0003

    0002

    0003

    00FC

    20

    0002

    0002

    0003

    00FE

    21

    0001

    0002

    0003

    0100

    22

    4C00

    0002

    0003

    0100


    Контрольные вопросы:

    1. Назовите регистры общего назначение и скажите, для чего они предназначены.

    AX,BX,CX,DX,CS,DS,SS,ES,FS,GS,SP. Предназначены для хранения операндов арифметико-логических инструкций, а так же адресов или отдельных компонентов адресов ячеек памяти

    1. Какую функцию выполняют сегментные регистры?

    Используются для указания адреса начала сегмента

    1. Какие команды пересылки данных использованы в в данной программе?

    MOV

    4. Чем отличается команда POP от команды PUSH?

    PUSH для записи данных в стек, POP для чтения данных в стеке

    5. Назовите 8-битные составляющие аккумулятора.

    AH,AL

    6. Какой вид адресации используется в команде mov ax,[bx] для указания

    источника?

    Косвенная

    1. Укажите в программе строку, где используется непосредственная адресация.

    Mov ax,1

    1. Укажите в программе строку, где используется прямая адресация.

    Mov dx,ax

    1. Что определяет значение регистра SP?

    Регистр SP указывает на вершину стека

    1. Сколько байт занимает команда mov ax,4c00h ?

    2 байт

    11.Какой способ кодирования применяется при хранении в памяти в программе

    числа -5?

    Кодирование ЭВМ

    1. Сколько байт в сегменте данных выделено для переменных?

    2 байта

    13.Сколько байт занимает переменная p2

    2 байта

    Лабораторная работа №2

    Изучение команд целочисленной арифметики процессора

    1. Цель работы: изучить порядок выполнения команд целочисленной

    арифметики процессором.

    2. Выполнение работы:

    Задание1: оттранслировать нижеследующую программу на Ассемблере и

    записать ее листинг. Используя отладчик, записать в таблицу изменения

    регистров AX, BX исполняя программу по шагам.

    Задание 2: объяснить изменение данных в полученной таблице.

    1 masm

    2 0000 model small

    3 0000 .Data

    4 0000 000F p1 dw 0fh

    5 0002 00FF p2 dw 0ffh

    6 0004 02 p3 db 2h

    7 0005 .code

    8 0000 start:

    9 0000 B8 0000s mov ax,@data

    10 0003 8B D0 mov dx,ax

    11 0005 A1 0000r mov ax,p1

    12 0008 BB 0002 mov bx,2

    13 000B 03 C3 add ax,bx

    14 000D 05 FFFE add ax,-2

    15 0010 2D 0005 sub ax,5

    16 0013 2D FFFB sub ax,-5

    17 0016 F6 26 0004r mul p3

    18 001A BB 0002 mov bx,2

    19 001D F6 F3 div bl

    20 001F B8 4C00 mov ax,4c00h

    21 0022 CD 21 int 21h

    22 end start


    Шаг

    AX

    BX

    IP

    1

    087B

    0000

    0003

    2

    087B

    0000

    0005

    3

    EA00

    0000

    0008

    4

    EA00

    0002

    000B

    5

    EA02

    0002

    000D

    6

    EA00

    0002

    0010

    7

    E9FB

    0002

    0013

    8

    EA00

    0002

    0016

    9

    0000

    0002

    001A

    10

    0000

    0002

    001D

    11

    0000

    0002

    001F

    12

    4C00

    0002

    0022


    Контрольные вопросы:

    1. Какая из объявленных переменных занимает самый большой объем?

    AX

    1. Что определяет содержимое регистра DS?

    Счётный регистр данных

    1. Назовите все арифметические команды, использованные в программе.

    ADD,SUB

    1. Куда помещается результат в команде add ax,bx?

    AX

    1. Где находится второй операнд при выполнении команды mul p3?

    AL

    1. Куда помещается результат выполнения команды mul p3?

    AX

    1. Где находится делимое при выполнении команды div bl?

    AX

    1. Где располагаются целая часть и остаток при выполнении команды div bх?]

    Целая часть сохраняется в AL остаток в AH


    Лабораторная работа №3

    Изучение логических и сдвиговых операций процессора

    1. Цель работы: изучить порядок выполнения логических и сдвиговых

    команд процессором.

    2. Выполнение работы:

    Задание1: оттранслировать нижеследующую программу на Ассемблере и

    записать ее листинг. Используя отладчик, записать в таблицу изменения

    регистров AX, BX исполняя программу по шагам.

    Задание 2: объяснить изменение данных в полученной таблице.

    1 masm

    2 0000 model small

    3 0000 .Data

    4 0000 000F p1 dw 0fh

    5 0002 00FF p2 dw 0ffh

    6 0004 0002 p3 dw 2h

    7 0006 .code

    8 0000 start:

    9 0000 B8 0000s mov ax,@data

    10 0003 8B D0 mov dx,ax

    11 0005 A1 0000r mov ax,p1

    12 0008 0D 00F0 or ax,0f0h

    13 000B 25 000F and ax,0fh

    14 000E F7 D0 not ax

    15 0010 8B 1E 0002r mov bx,p2

    16 0014 81 F3 00CC xor bx,0cch

    17 0018 B8 009B mov ax,10011011b

    18 001B D1 E8 shr ax,1

    19 001D D1 E8 shr ax,1

    20 001F D1 E8 shr ax,1

    21 0021 D1 E8 shr ax,1

    22 0023 D1 E8 shr ax,1

    23 0025 D1 E0 shl ax,1

    24 0027 D1 E0 shl ax,1

    25 0029 D1 E0 shl ax,1

    26 002B D1 E0 shl ax,1

    27 002D D1 E0 shl ax,1

    28 002F B8 4C00 mov ax,4c00h

    29 0032 CD 21 int 21h

    30 end start



    Шаг

    AX

    BX

    IP

    1

    087C

    0000

    0003

    2

    087C

    0000

    0005

    3

    EA00

    0000

    0008

    4

    EAF0

    0000

    000B

    5

    0000

    0000

    000E

    6

    FFFF

    0000

    0010

    7

    FFFF

    FFFF

    0014

    8

    FFFF

    FF33

    0018

    9

    009B

    FF33

    001B

    10

    004D

    FF33

    001D

    11

    0026

    FF33

    001F

    12

    0013

    FF33

    0021

    13

    0009

    FF33

    0023

    14

    0004

    FF33

    0025

    15

    0008

    FF33

    0027

    16

    0010

    FF33

    0029

    17

    0020

    FF33

    002B

    18

    0040

    FF33

    002D

    19

    0080

    FF33

    002F

    20

    4C00

    F33

    0032


    Контрольные вопросы:

    1. Какое действие выполняет команда mov ax,@data?

    В регистр AX загружается сегментный адрес сегмента данных

    2. Какое получится значение, если применить операцию NOT над числом 5?

    Получится число -5

    3. Объясните, как выполняется операция OR в ассемблере.

    Команда выполняет операцию исключающего ИЛИ между двумя операндами

    4. Назовите все логические команды, использованные в программе.

    OR, AND, NOT

    5. Какие команды сдвига используются в программе?

    shr и shl

    6. Как измениться число 16, если два раза применить команду сдвига вправо?

    Запятая сдвинется на две единицы вправо и получится число 1600

    1. Как измениться число 16, если два раза применить команду сдвига влево?

    Запятая сдвинется на две единицы влево и получится число 0,16

    1. Что определяет содержимое регистра IP?

    Содержимое регистра IP определяет местонахождение команды

    Лабораторная работа №4

    Изучение команд условного и безусловного перехода процессора

    1. Цель работы: изучить порядок выполнения команд условного и

    безусловного перехода процессором.

    2. Выполнение работы:

    Задание1: оттранслировать нижеследующую программу на Ассемблере и

    записать ее листинг. Используя отладчик, записать в таблицу изменения

    регистров AX, BX и регистра признаков, исполняя программу по шагам.

    Задание 2: объяснить изменение данных в полученной таблице.


    1 masm

    2 0000 model small

    3 0000 .Data

    4 0000 000F p1 dw 0fh

    5 0002 00FF p2 dw 0ffh

    6 0004 02 p3 db 2h

    7 0005 .code

    8 0000 start:

    9 0000 B8 0000s mov ax,@data

    10 0003 8E D8 mov ds,ax

    11 0005 A1 0000r mov ax,p1

    12 0008 BB 0001 mov bx,1

    13 000B 3D 000D cmp ax,0Dh

    14 000E 74 03 je Lb1

    15 0010 83 C3 01 add bx,1

    16 0013 3D 000F Lb1: cmp ax,0fh

    17 0016 75 03 jne Lb2

    18 0018 83 C3 01 add bx,1

    19 001B 3D 0009 Lb2: cmp ax,9h

    20 001E 7C 03 jl Lb3

    21 0020 83 C3 01 add bx,1

    22 0023 3D 0010 Lb3: cmp ax,10h

    23 0026 7F 03 jg Lb4

    24 0028 83 C3 01 add bx,1

    25 002B EB 04 90 Lb4: jmp Lb5

    26 002E 83 C3 01 add bx,1

    27 0031 B8 4C00 Lb5: mov ax,4c00h

    28 0034 CD 21 int 21h

    29 end start



    Шаг

    AX

    BX

    C

    Z

    S

    O

    P

    A

    I

    D

    1

    087C

    0000

    0

    0

    0

    0

    0

    0

    1

    0

    2

    087C

    0000

    0

    0

    0

    0

    0

    0

    1

    0

    3

    000F

    0000

    0

    0

    0

    0

    0

    0

    1

    0

    4

    000F

    0001

    0

    0

    0

    0

    0

    0

    1

    0

    5

    000F

    0001

    0

    0

    0

    0

    0

    0

    1

    0

    6

    000F

    0001

    0

    0

    0

    0

    0

    0

    1

    0

    7

    000F

    0002

    0

    0

    0

    0

    0

    0

    1

    0

    8

    000F

    0002

    0

    1

    0

    0

    1

    0

    1

    0

    9

    000F

    0002

    0

    1

    0

    0

    1

    0

    1

    0

    10

    000F

    0003

    0

    0

    0

    0

    1

    0

    1

    0

    11

    000F

    0003

    0

    0

    0

    0

    1

    0

    1

    0

    12

    000F

    0003

    0

    0

    0

    0

    1

    0

    1

    0

    13

    000F

    0004

    0

    0

    0

    0

    0

    0

    1

    0

    14

    000F

    0004

    1

    0

    1

    0

    1

    0

    1

    0

    15

    000F

    0004

    1

    0

    1

    0

    1

    0

    1

    0

    16

    000F

    0005

    0

    0

    0

    0

    1

    0

    1

    0

    17

    000F

    0005

    0

    0

    0

    0

    1

    0

    1

    0

    18

    4C00

    0005

    0

    0

    0

    0

    1

    0

    1

    0



    Контрольные вопросы:

    1. Сколько команд безусловного перехода использовано в программе?

    1

    2. Назовите все условные команды, использованные в программе.

    3. Как надо изменить условные операторы, чтобы после выполнения программы

    содержимое регистра BX было равно 1?

    4.Что такое регистр флагов и для чего он используется?

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

    5. Назовите основные признаки фиксируемые регистром флагов.

    6. Укажите те строки в которых программа использует содержимое регистра

    признаков.

    1. Для чего используется команда CMP?

    Команда cmp позволяет использовать утилиту для побайтового сравнения двух произвольных файлов

    8. Что меняется внутри процессора при выполнении команды CMP

    Вычитывает второй операнд из первого, но содержимое полей не меняет


    Лабораторная работа №5

    Организация циклов в процессоре

    1. Цель работы: изучить порядок выполнения циклов процессором.

    2. Выполнение работы:

    Задание1: оттранслировать нижеследующую программу на Ассемблере и

    записать ее листинг. Используя отладчик, записать в таблицу изменения

    регистров AX, BX и CX, исполняя программу по шагам.

    Задание 2: объяснить изменение данных в полученной таблице.
    1 masm

    2 0000 model small

    3 0000 .Data

    4 0000 0004 p1 dw 04h

    5 0002 .code

    6 0000 start:

    7 0000 B8 0000s mov ax,@data

    8 0003 8E D8 mov ds,ax

    9 0005 A1 0000r mov ax,p1

    10 0008 BB 0000 mov bx,0

    11 000B Lb1:

    12 000B 83 C3 01 add bx,1

    13 000E FE C8 dec al

    14 0010 75 F9 jnz Lb1

    15 0012 8B 0E 0000r mov cx,p1

    16 0016 83 EB 01 Lb2: sub bx,1

    17 0019 E2 FB loop Lb2

    18 001B B8 4C00 mov ax,4c00h

    19 001E CD 21 int 21h

    20 end start



    Шаг

    AX

    BX

    CX

    1

    087B

    0000

    0000

    2

    087B

    0000

    0000

    3

    0004

    0000

    0000

    4

    0004

    0000

    0000

    5

    0004

    0001

    0000

    6

    0003

    0001

    0000

    7

    0003

    0001

    0000

    8

    0003

    0002

    0000

    9

    0002

    0002

    0000

    10

    0002

    0002

    0000

    11

    0002

    0003

    0000

    12

    0001

    0003

    0000

    13

    0001

    0003

    0000

    14

    0001

    0004

    0000

    15

    0000

    0004

    0000

    16

    0000

    0004

    0000

    17

    0000

    0004

    0004

    18

    0000

    0003

    0004

    19

    0000

    0000

    0000

    20

    4C00

    0000

    0000



    Контрольные вопросы:

    1. Сколько циклов используется в программе?

    2 цикла, jnz Lb1 - конец sub bx,1 - начало

    1. Укажите начало и конец циклов организованных в программе.

    Lb1: add bx - начало

    1. С помощью, каких команд можно организовать циклы?

    Loop, jnz

    1. Какую функцию выполняет регистр CX при использовании команды LOOP?

    Функцию счётчика цикла

    5. Сколько раз выполняется повтор в последней циклической области

    программы?

    4 раза

    6. От чего зависит количество циклических повторов при использовании

    команды LOOP?

    СХ - счётчик цикла


    написать администратору сайта