Лабораторная работа 1 Изучение команд передачи данных и работы со стеком процессора
Скачать 37.48 Kb.
|
Колледж информационных технологий и экономики КБГУ Им. Х.М. Бербекова Отчет по лбараторным работам по дисциплине «Микропроцессорные системы» Выполнил: Гергов Аскер Амирханович Принял: Тлупов З.А. Нальчик-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,DX,CS,DS,SS,ES,FS,GS,SP. Предназначены для хранения операндов арифметико-логических инструкций, а так же адресов или отдельных компонентов адресов ячеек памяти Какую функцию выполняют сегментные регистры? Используются для указания адреса начала сегмента Какие команды пересылки данных использованы в в данной программе? MOV 4. Чем отличается команда POP от команды PUSH? PUSH для записи данных в стек, POP для чтения данных в стеке 5. Назовите 8-битные составляющие аккумулятора. AH,AL 6. Какой вид адресации используется в команде mov ax,[bx] для указания источника? Косвенная Укажите в программе строку, где используется непосредственная адресация. Mov ax,1 Укажите в программе строку, где используется прямая адресация. Mov dx,ax Что определяет значение регистра SP? Регистр SP указывает на вершину стека Сколько байт занимает команда mov ax,4c00h ? 2 байт 11.Какой способ кодирования применяется при хранении в памяти в программе числа -5? Кодирование ЭВМ Сколько байт в сегменте данных выделено для переменных? 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 Что определяет содержимое регистра DS? Счётный регистр данных Назовите все арифметические команды, использованные в программе. ADD,SUB Куда помещается результат в команде add ax,bx? AX Где находится второй операнд при выполнении команды mul p3? AL Куда помещается результат выполнения команды mul p3? AX Где находится делимое при выполнении команды div bl? AX Где располагаются целая часть и остаток при выполнении команды 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
Контрольные вопросы: Какое действие выполняет команда mov ax,@data? В регистр AX загружается сегментный адрес сегмента данных 2. Какое получится значение, если применить операцию NOT над числом 5? Получится число -5 3. Объясните, как выполняется операция OR в ассемблере. Команда выполняет операцию исключающего ИЛИ между двумя операндами 4. Назовите все логические команды, использованные в программе. OR, AND, NOT 5. Какие команды сдвига используются в программе? shr и shl 6. Как измениться число 16, если два раза применить команду сдвига вправо? Запятая сдвинется на две единицы вправо и получится число 1600 Как измениться число 16, если два раза применить команду сдвига влево? Запятая сдвинется на две единицы влево и получится число 0,16 Что определяет содержимое регистра 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
Контрольные вопросы: Сколько команд безусловного перехода использовано в программе? 1 2. Назовите все условные команды, использованные в программе. 3. Как надо изменить условные операторы, чтобы после выполнения программы содержимое регистра BX было равно 1? 4.Что такое регистр флагов и для чего он используется? Регистр флагов - регистр состояния, содержащий текущее состояние процессора. Он отражает результат арифметических операций, а также информацию об ограничениях, накладываемых на работу процессора в текущий момент времени 5. Назовите основные признаки фиксируемые регистром флагов. 6. Укажите те строки в которых программа использует содержимое регистра признаков. Для чего используется команда 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
Контрольные вопросы: Сколько циклов используется в программе? 2 цикла, jnz Lb1 - конец sub bx,1 - начало Укажите начало и конец циклов организованных в программе. Lb1: add bx - начало С помощью, каких команд можно организовать циклы? Loop, jnz Какую функцию выполняет регистр CX при использовании команды LOOP? Функцию счётчика цикла 5. Сколько раз выполняется повтор в последней циклической области программы? 4 раза 6. От чего зависит количество циклических повторов при использовании команды LOOP? СХ - счётчик цикла |