Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Уроки ассемблеру. Быстро и просто. Урок 23


В этом уроке я предложу вам нарисовать круг. На ассемблере. Собственно, текст программы без комментариев:

;masm 6

p segment
assume cs:p
org 100h
s:
mov ax,0012h
int 10h
;
mov ax,r
mov y,ax
mov ax,r
neg ax
add ax,1
shl ax,1
mov d,ax
;
mov cx,xc
add cx,r
mov dx,yc
mov ax,cc
call pix
mov cx,xc
sub cx,r
mov dx,yc
mov ax,cc
call pix
mov cx,y
m22:
call pr1
call pr2
call pr3

mov cx,y
inc cx
loop m22

;
xor ax,ax
int 16h
int 20h

;
x dw 0
y dw 0
d dw 0
xc dw 250
yc dw 250
r dw 180
cc dw 4
rcx dw 0
pix proc
mov ah,12
int 10h
ret
pix endp
pr1 proc
mov cx,xc
add cx,x
mov dx,yc
add dx,y
mov ax,cc
call pix
mov cx,xc
add cx,x
mov dx,yc
sub dx,y
mov ax,cc
call pix

mov cx,xc
sub cx,x
mov dx,yc
add dx,y
mov ax,cc
call pix

mov cx,xc
sub cx,x
mov dx,yc
sub dx,y
mov ax,cc
call pix

ret
pr1 endp
pr2 proc
mov ax,d
add ax,y
cmp ax,0
jl po2
dec y
mov ax,y
shl ax,1
dec ax
sub d,ax
po2:
ret
pr2 endp
pr3 proc
mov ax,x
cmp ax,d
jl po3
inc x
mov ax,x
shl ax,1
inc ax
add d,ax
po3:
ret
pr3 endp

p ends
end s

 


В избранное