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

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

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

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

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

textual
Листинг программы
.model small                    
.386                                
 
.data                           
 
.stack 100h     
 
.code                                           
start:                                                                      
    mov ax,@data        
    mov ds,ax
    
    mov ah,00h
    mov al,13h
    int 10h
    
    push 0A000h
    pop es
    mov di,50
    
    mov bx,1
    mov dx,2
    mov cx,50
    col:
        push cx
        
        mov cx,bx
        row:
            mov byte ptr es:[di],1
            inc di
        loop row
        
        add di,320
        sub di,dx
        add dx,2
        
        add bx,2
        
        pop cx
    loop col
    
    mov di,50
    
    mov cx,200
    moving:
        push cx
    
        push di
        mov cx,50
        del:
            mov byte ptr es:[di],0
            add di,319
        loop del
    
        pop di
        inc di
    
        push di
    
        mov cx,50
        insert:
            mov byte ptr es:[di],1
            add di,321
        loop insert
    
        pop di
    
        call delay
    
        pop cx
        
    loop moving
    
    xor ax,ax
    int 16h
    
    mov ah,4Ch                              
    mov al,00h          
    int 21h
    
    delay proc
        push ax
        push bx
        push dx
    
        xor ax,ax
        int 1Ah
        
        mov bx,dx
        add bx,3
        
        check:
        xor ax,ax
        int 1Ah
        
        cmp bx,dx
        jnb check
 
        pop dx
        pop bx
        pop ax
        
        ret
    delay endp
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
Похожие ответы