Advertisement
qberik

Untitled

Sep 29th, 2022 (edited)
3,149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model small
  2. .data
  3.   quote1    db '|Hard is the first step.$'
  4.   quote2    db '|Varro, Mark Terence$'
  5.   quote3    db '|116-27 years. BC$'
  6.   author    db 'Skrebnev Igor$'
  7.   my_group  db 'IUK4-32B$'
  8.   fakult    db 'IUK$'
  9. .code    
  10. start:  
  11.   mov ax,@data    
  12.   mov ds,ax    
  13.  
  14.   ; для начала необходимо очистить экран
  15.   ; от того что на нём чтобы можно
  16.   ; было нарисовать что-то своё
  17.   ; чистим экран
  18.   mov ah, 6 ; очиста экрана
  19.   mov al, 0 ; указание на очистку всего экрана
  20.   mov bh, 03fh ; цвет фона
  21.   mov cx,0000 ; левая вые верхие координаты
  22.   mov dx, 184fh
  23.   ; размер окна 80 на 25
  24.   ; последние индексы соответсвенно 79 и 24
  25.   ; в hex кодировке это будут 4f и 18
  26.   int 10h ; прервыание биоса
  27.  
  28.   ; экран очищен
  29.  
  30.   ; теперь напишем цитатку в центре экрана
  31.   ; цитата сосотоит из 3-х линий
  32.  
  33.   ; поставим курсор для вывода первой линии
  34.   mov ah, 02h ; код функции установки позиции курсора
  35.   mov bh, 0 ; текущий экран
  36.   ; напечатаем в позиции 11, 27
  37.   ; в hex это будет 0b и 1b соответсвенно
  38.   mov dx, 0b1bh
  39.   int 10h ; прервыание биоса
  40.  
  41.   ; позиция курсора установлена на нужное нам место
  42.   ; теперь можно вывести строку
  43.   mov ah, 09h ; код функции печати
  44.   mov dx, offset quote1 ; указываем строку
  45.   int 21h ; прерывание DOS
  46.  
  47.  
  48.   ; выведем 2-ю строку
  49.   mov ah, 02h ; код функции установки позиции курсора
  50.   mov bh, 0 ; текущий экран
  51.   ; напечатаем в позиции 12, 27
  52.   ; в hex это будет 0c и 1b соответсвенно
  53.   mov dx, 0c1bh
  54.   int 10h ; прервыание биоса
  55.  
  56.   mov ah, 09h ; код функции печати
  57.   mov dx, offset quote2 ; указываем строку
  58.   int 21h ; прерывание DOS
  59.  
  60.   ; аналогичко для 3-й строки
  61.   mov ah, 02h ; код функции установки позиции курсора
  62.   mov bh, 0 ; текущий экран
  63.   ; напечатаем в позиции 13, 27
  64.   ; в hex это будет 0d и 1b соответсвенно
  65.   mov dx, 0d1bh
  66.   int 10h ; прервыание биоса
  67.  
  68.   mov ah, 09h ; код функции печати
  69.   mov dx, offset quote3 ; указываем строку
  70.   int 21h ; прерывание DOS
  71.  
  72.  
  73.   ; теперь надо вывести текст по углам
  74.   ; начнём с левого верхнего
  75.   ; напишу там свои инициалы
  76.  
  77.   ; установка курсора
  78.   mov ah, 02h ; код функции установки позиции курсора
  79.   mov bh, 0 ; текущий экран
  80.   ; напечатаем в позиции 0, 0
  81.   ; в hex это будет 00 и 00 соответсвенно
  82.   mov dx, 0000h
  83.   int 10h ; прервыание биоса
  84.  
  85.   mov ah, 09h ; код функции печати
  86.   mov dx, offset author; указываем строку
  87.   int 21h ; прерывание DOS
  88.  
  89.  
  90.   ; теперь нормег группы справа сверху
  91.  
  92.   ; установка курсора
  93.   mov ah, 02h ; код функции установки позиции курсора
  94.   mov bh, 0 ; текущий экран
  95.   ; напечатаем в позиции 0, 72
  96.   ; в hex это будет 00 и 48 соответсвенно
  97.   mov dx, 0048h
  98.   int 10h ; прервыание биоса
  99.  
  100.   mov ah, 09h ; код функции печати
  101.   mov dx, offset my_group; указываем строку
  102.   int 21h ; прерывание DOS
  103.  
  104.   ; затем факултет слева снизу
  105.  
  106.   ; установка курсора
  107.   mov ah, 02h ; код функции установки позиции курсора
  108.   mov bh, 0 ; текущий экран
  109.   ; напечатаем в позиции 24, 0
  110.   ; в hex это будет 18 и 0 соответсвенно
  111.   mov dx, 1800h
  112.   int 10h ; прервыание биоса
  113.  
  114.   mov ah, 09h ; код функции печати
  115.   mov dx, offset fakult; указываем строку
  116.   int 21h ; прерывание DOS
  117.  
  118.   ; теперь 5 знаков ! красного цвета
  119.  
  120.   mov ah, 02h ; код функции установки позиции курсора
  121.   mov bh, 0 ; текущий экран
  122.   ; напечатаем в позиции 24, 75
  123.   ; в hex это будет 18 и 4b соответсвенно
  124.   mov dx, 184bh
  125.   int 10h ; прервыание биоса
  126.  
  127.   ; выведем 5 знаков ! справа снизу, через прервыание биоса
  128.   mov ah, 09h; код функции рисования символа
  129.   mov al, '!' ; установка символа
  130.   mov bh, 0 ; на текущем экране
  131.   mov bl, 00111100b ; установка цвета
  132.   ; первые 4 бита
  133.   ; 0011 - бирюзовый цвет на фоне без мигания
  134.   ; 1100 - яркий красный цвет знаков !
  135.   mov cx, 5 ; количество раз который символ выведется
  136.   int 10h
  137.  
  138.  
  139.   ; теберь будем считывать ввод пользователя без вывода
  140.   ; чтобы можно было посмотреть выполнение программы
  141.   ; аналогично выполнению комманды pause
  142.   mov ah, 07h ; код функции ввода без отображения вводимых символов
  143.   int 21h ; прерывание DOS
  144.  
  145.   ; выход
  146.   mov ah, 04Ch    
  147.   int 21h
  148.  
  149. end start  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement