asterisk movement in assembly language programming

[org 0x100]

mov cx,5
next:
call right
loop next


mov ax,0x4c00
int 0x21
right:
push bp
push ax
push bx
push cx
push dx
push si
push di
push es

mov ax,0xb800
mov es,ax
xor di,di

mov cx,80

l1:
mov word[es:di],0x741
call delay
call delay
call delay
call cls

add di,2
loop l1
sub di,2
mov cx,25
l2:
mov word[es:di],0x741
call delay
call delay
call delay
call cls
add di,160
loop l2

sub di,160
mov cx,80

l3:
mov word[es:di],0x741
call delay
call delay
call delay
call cls

sub di,2
loop l3

add di,2
mov cx,25

l4:
mov word[es:di],0x741
call delay
call delay
call delay
call cls
sub di,160
loop l4


pop es
pop di
pop si
pop dx
pop cx
pop bx
pop ax
pop bp
ret 0


delay:
push bp
push ax
push bx
push cx
push dx
push si
push di
mov cx,9000

lo:

loop lo

pop di
pop si
pop dx
pop cx
pop bx
pop ax
pop bp
ret 0
cls:
push bp
push ax
push bx
push cx
push dx
push si
push di
push es
mov ax,0xb800
mov es,ax
mov cx,2000
xor di,di

l:
mov word[es:di],0x720
add di,2
loop l



pop es
pop di
pop si
pop dx
pop cx
pop bx
pop ax
pop bp
ret 0

Comments

Popular Posts