Можливості системних програм, що обслуговують програми на асемблері

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

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

Мета роботи: навчитися використовувати можливості системних програм, що обслуговують програми на асемблері.

  1. Створив початковий модуль (lab1.asm).
  2. За допомогою утиліти masmз lab1.asm отримав об’єктний модуль lab1.objта файл лістингу lab1.lst. Файл лістингу містить код програми. Для кожної команди приводиться її машинний код та зміщення у сегменті коду. Крім того, файл має інформацію про мітки та сегменти, помилки у програмі.
  3. За допомогою утиліти link із об’єктного файлу отримав виконуючий файл lab1.exe.
  4. Запустив програму Debug та пройшов програму по крокам, знаходячи та виправляючи помилки, що були.

Текст програми

titlelabrab_1

page     ,132

           sts       segment  stack

                     dw       64 dup (?)

           vst       label    word

           sts       ends

           data      segment

           nom_1     db       9h

           nom_2     db       4ch

           text1     db       'lab_rab_1',0ah,0dh,'$'

           text2     db       'Microprocessor type:',0ah,0dh,'$'

           text_88   db       '8086/8088',10,13,'$'

           text_286  db       '80286',10,13,'$'

           text_386  db       '80386',10,13,'$'

           text3     db       'no 8086/8088, no 80286 and no 80386',10,13,'$'

           data      ends

           code      segment

                     assume   cs:code,ds:data,ss:sts

           nach:     mov      ax,data

                     mov      ds,ax

                     mov      ax,sts

                     mov      ss,ax

                     lea      sp,vst

                     mov      ah,nom_1 

                     lea      dx,text1

                     int      21h    

                     lea      dx,text2

                     int      21h    

                     xor      ax,ax

                     push     ax

                     popf

                     pushf

                     pop      ax

and      ah,0f0h

                     jz       m_286

                     cmp      ah,0f0h

                     jz       m_88

                     test     ah,80h

                     jnz      m_386

lea      dx,text3

                     jmp      m1

           m_88:     lea      dx,text_88   ; ИмеемМП-8086/8088

                     jmp      m1

           m_286:    lea      dx,text_286  ; ИмеемМП- 80286

                     jmp      m1

           m_386:    lea      dx,text_386  ; ИмеемМП-80386

m1:       mov      ah,nom_1     ; Выдача сообщения

                     int      21h          ; на экран.

                     mov      ah,nom_2    ; Реализуем возврат

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

code ends

                     end      nach

Висновок: на даній лабораторній роботі я навчився використовувати можливості системних програм, що обслуговують програми та отримав навички у написанні простих програм мовою асемблера.

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

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