Вивчення структури команд процесора, використання їхніх машинних кодів. Можливості, надані системною програмою debug

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

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

Тема: Вивчити структуру  команд процесора і навчитися використовувати

     їхні машинні коди . Задіяти можливості, надані  системною програмою debug.

Мета: Придбати навички при роботі на MASM

Хід виконання лабораторної роботи.

Текст програми на мові Assembler:

title    labrab_2

                     page     ,132

           stc       segment  stack

                     db       128 dup (?)

           tos       label    word

           stc       ends

           dats      segment

           text1     db       'begin labrab_2',0ah,0dh,'$'

           text2     db       'end labrab_2',0ah,0dh,'$'

           A         dw       0,1,2,3,4,5,6,7,8,9

           B         dw       10 dup (?)

           kol       dw       10

           dats      ends

           cods      segment

                     assume   cs:cods,ds:dats,ss:stc

           beg:      mov      ax,stc

                     mov      ss,ax

                     mov      sp,offset tos

                     mov      ax,dats

                     mov      ds,ax

                     mov      ah,9h       ;  Вывод

                     lea      dx,text1    ; сообщения

                     int      21h         ; на экран

                     mov      cx,kol

                     xor      si,si       ; i:=0

                     mov      di,18       ; j:=9

           l1:       mov      ax,A[si]    ; (ax):=A[i]

                     mov      B[di],ax    ; B[j]:=A[i]

                     add      si,2        ; i:=i+1

                     sub      di,2         ; j:=j-1

                     loop     l1

                     mov      ah,9h        ;  Вывод

                     lea      dx,text2     ; сообщения

                     int      21h          ; на экран

                     mov      ah,4ch       ;  Возврат

                     int      21h          ; в систему

            cods     ends

                     end      beg

Создаємо EXE-файл за допомогою програм Masm та Link. У резулбтаты виконання цих команд створюэться EXE-файл, файл лістінга та файл перехресних ссилок.

Файл лістінгу .lst:

Microsoft (R) Macro Assembler Version 5.10                  9/21/3

labrab_2                                                    Page     1-1

       1                                title    labrab_2

       2                                                   page     ,132

       3 0000                                          stc       segment  stack

       4 0000  0080[                                                   db       128 dup (?)

       5    ??                      

       6                     ]       

       7                             

       8 0080                                          tos       label    word

       9 0080                                          stc       ends

      10 0000                                         dats      segment

      11 0000  62 65 67 69 6E 20                    text1     db       'begin labrab_2',0ah,0dh,'$'

      12       6C 61 62 72 61 62  

      13       5F 32 0A 0D 24               

      14 0011  65 6E 64 20 6C 61                   text2     db       'end labrab_2',0ah,0dh,'$'

      15       62 72 61 62 5F 32  

      16       0A 0D 24                         

      17 0020  0000 0001 0002 0003              A         dw       0,1,2,3,4,5,6,7,8,9

      18       0004 0005 0006 0007      

      19       0008 0009              

      20 0034  000A[                                       B         dw       10 dup (?)

      21             ????                             

      22                             ]       

      23                                      

      24 0048  000A                                        kol       dw       10

      25 004A                                                  dats      ends

      26 0000                                         cods      segment

      27                                                            assume   cs:cods,ds:dats,ss:stc

      28 0000  B8 ---- R                         beg:      mov      ax,stc

      29 0003  8E D0                                                 mov      ss,ax

      30 0005  BC 0080 R                                mov      sp,offset tos

      31 0008  B8 ---- R                                   mov      ax,dats

      32 000B  8E D8                                                mov      ds,ax

      33 000D  B4 09                                                 mov      ah,9h       ;  Вывод

      34 000F  8D 16 0000 R                                     lea      dx,text1    ; сообщения

      35 0013  CD 21                                                 int      21h         ; на экран

      36 0015  8B 0E 0048 R                                     mov      cx,kol

      37 0019  33 F6                                                  xor      si,si       ; i:=0

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.