Министерство образования Российской Федерации Пензенский государственный университет Кафедра «Вычислительная техника» ОТЧЕТ по практической работе №2 по курсу «ЭВМ и ПУ» на тему «Диагностические сетевые утилиты и их использование» Выполнила: студентка группы 20ВВВ1 Зацепилина Е.С. Приняли: Коннов Н.Н. Попов К.В. Пенза 2023 г. Цель работы: Изучение способов адресации и арифметико-логических и посылочных операций. Лабораторное задание: Составить программу вычисления по формуле согласно варианту. Операнды и результат разместить в памяти. Один из операндов A, B, С адресовать, используя базовую адресацию, остальные - базовую со смещением, константу адресовать непосредственно, результат - прямо. Используя листинг программы, полученный при выполнении задания 1, разобрать первой записанной в сегменте кода команды add (вариант №2) и записать бинарные коды всех полей ее формата. Вариант №`1 № 1 Формула Y=A+B-(C+3 ) Базовая адресация B Листинг: Turbo Assembler lab2.ASM 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 0000 0000 0020 0000 0000 0002 0004 0006 0008 0000 0000 0000 0001 0004 0005 0008 10*(????) 0001 FFF1 0008 ???? 1E B8 0000 50 B8 0000s 8E D8 Version 2.5 02/11/23 11:09:15 Page 1 stseg segment para stack dw 16 dup(?) stseg ends dseg segment para a dw 1 b dw -15 c dw 8 y dw ? dseg ends cseg segment para lab1 proc far assume cs:cseg,ds:dseg,ss:stseg push ds mov ax,0 push ax mov ax,dseg mov ds,ax ;----------------------------------------------------- 19 20 21 22 23 24 25 26 27 28 29 30 000A 000D 0010 0012 0015 0018 001A BB 0002r 8B 47 FE 03 07 8B 4F 02 83 C1 03 2B C1 A3 0006r 001D CB 001E 001E Turbo Assembler Symbol Table lea bx,b mov ax,[bx-2] add ax,[bx] mov cx,[bx+2] add cx, 3 sub ax,cx mov y,ax ;---------------------------------------------------ret lab1 endp cseg ends end lab1 Version 2.5 02/11/23 11:09:15 Symbol Name Type ??DATE ??FILENAME ??TIME ??VERSION @CPU @CURSEG @FILENAME @WORDSIZE A B C LAB1 Y Text "02/11/23" Text "lab2 " Text "11:09:15" Number 0205 Text 0101H Text CSEG Text LAB2 Text 2 Word DSEG:0000 Word DSEG:0002 Word DSEG:0004 Far CSEG:0000 Word DSEG:0006 Groups & Segments Bit Size Align Combine Class CSEG DSEG STSEG 16 001E Para none 16 0008 Para none 16 0020 Para Stack Page 2 Value Задание 2: Используя листинг программы, полученный при выполнении задания1, разобрать первой записанной в сегменте кода команды add (четные варианты) или команды sub (нечетные варианты) и записать бинарные коды всех полей ее формата. Решение: Команда 0018 2B C1– 2 байта 7 1 0 7 6 5 3 2 0 КОП d w mod reg r/m 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 - r/m = 001, код регистра DX, в который заносится операнд - mod = 11, операнд является содержимым регистра DX - reg = 000, значит в качестве второго операнда используем AX Получилась команда sub AX, CX Результат: Выполнен ручной просчет: Y=A+B-(C+3) a b c y 1 -15 8 ? Y=1+(-14)-(8+3) Y = -25 Вывод: изучили способы адресации и арифметико-логические и посылочные операции