Одноцветный треугольник который движется по экрану - Assembler

Узнай цену своей работы

Формулировка задачи:

Помогити написать програму на Assemler. Программа должна выводить на экран одноцветный треугольник который движется.

Решение задачи: «Одноцветный треугольник который движется по экрану»

textual
Листинг программы
  1. .model small                   
  2. .386                               
  3.  
  4. .data                          
  5.  
  6. .stack 100h    
  7.  
  8. .code                                          
  9. start:                                                                     
  10.     mov ax,@data       
  11.     mov ds,ax
  12.    
  13.     mov ah,00h
  14.     mov al,13h
  15.     int 10h
  16.    
  17.     push 0A000h
  18.     pop es
  19.     mov di,50
  20.    
  21.     mov bx,1
  22.     mov dx,2
  23.     mov cx,50
  24.     col:
  25.         push cx
  26.        
  27.         mov cx,bx
  28.         row:
  29.             mov byte ptr es:[di],1
  30.             inc di
  31.         loop row
  32.        
  33.         add di,320
  34.         sub di,dx
  35.         add dx,2
  36.        
  37.         add bx,2
  38.        
  39.         pop cx
  40.     loop col
  41.    
  42.     mov di,50
  43.    
  44.     mov cx,200
  45.     moving:
  46.         push cx
  47.    
  48.         push di
  49.         mov cx,50
  50.         del:
  51.             mov byte ptr es:[di],0
  52.             add di,319
  53.         loop del
  54.    
  55.         pop di
  56.         inc di
  57.    
  58.         push di
  59.    
  60.         mov cx,50
  61.         insert:
  62.             mov byte ptr es:[di],1
  63.             add di,321
  64.         loop insert
  65.    
  66.         pop di
  67.    
  68.         call delay
  69.    
  70.         pop cx
  71.        
  72.     loop moving
  73.    
  74.     xor ax,ax
  75.     int 16h
  76.    
  77.     mov ah,4Ch                             
  78.     mov al,00h         
  79.     int 21h
  80.    
  81.     delay proc
  82.         push ax
  83.         push bx
  84.         push dx
  85.    
  86.         xor ax,ax
  87.         int 1Ah
  88.        
  89.         mov bx,dx
  90.         add bx,3
  91.        
  92.         check:
  93.         xor ax,ax
  94.         int 1Ah
  95.        
  96.         cmp bx,dx
  97.         jnb check
  98.  
  99.         pop dx
  100.         pop bx
  101.         pop ax
  102.        
  103.         ret
  104.     delay endp
  105. end start

Объяснение кода листинга программы

  1. Переменные: — ax, ds, al, int 10h: используются для инициализации сегмента данных и указателя на начало кадра (10h), а также для установки начального цвета (13h) — bx, dx, cx, di, es: используются для перемещения треугольника по экрану — mov: используется для пересылки данных между регистрами — push и pop: используются для работы со стеком — loop: используется для повторения операций — xor: используется для обнуления регистра — int: используется для вывода треугольника на экран и проверки его положения — delay proc: используется для создания задержки — check: используется для проверки положения треугольника — ret: используется для завершения процедуры
  2. Список действий: — Инициализация сегмента данных и указателя на начало кадра — Установка начального цвета треугольника — Создание треугольника на экране — Перемещение треугольника по экрану — Проверка положения треугольника — Задержка — Вывод треугольника на экран — Проверка положения треугольника — Завершение процедуры

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы