目录 上一页 下一页 下一章

-256- PC机汇编语言实战精解






cont1:






cont2:










directx:




cont3:






lineloop:



mov
sub
jge
neg
neg

mov
mov
sub
jge
neg
neg

mov

cmp
jl
mov
mov
mov
mov
mov
jmp

mov
mov
mov
mov

mov
shl
mov
shl
mov
mov

call
add
add
ax,x2
ax,x1
cont1
si
ax

deltax,ax
ax,y2
ax,y1
cont2
di
ax

deltay,ax

ax,deltax
directx
bp,0
dx,si
si,0
ax,deltax
bx,deltay
cont3

bp,2
dx,di
di,0
bx,deltax

cx,bx
ax,1
delta1,ax
bx,1
delta2,bx
bx,cx

point
x1,si
y1,di
;取得终止点的X坐标
;减去起始点的X坐标
;若终止点在起始点右边,转CONT1
;否则X方向上步进增量改为-1
;获得X方向上的总点数(ΔX′)

;保存ΔX′
;取得终止点的Y坐标
;减去起始点的Y坐标
;若终止点在起始点下方,转CONT2
;否则Y方向上的步进增量改为-1
;获得Y方向上的总点数(ΔY′)

;保存ΔY′

;将ΔY′与ΔX′进行比较
;若ΔY′< ΔX′,则将X方向作为递增方向
;若Y方向为递增方向,则准备调整X坐标
;X方向上的增量值送入DX寄存器备份
;X方向的增量值清0
;ΔX′送入AX寄存器
;ΔY′送入BX寄存器
;转CONT3继续

;若X方向为递增方向,则准备调整Y坐标
;Y方向的增量值送入DX寄存器备份
;Y方向的增量值清0
;ΔX′送入BX寄存器
;注:以下的说明将假定X方向为递增方向
;暂存BX寄存器中的ΔX′值
;计算2ΔY′
;将2ΔY′保存至DELTA1
;计算2ΔX′
;将2ΔX′保存至DELTA2
;将ΔX′送回BX寄存器

;在(X1,Y1)处画一个点
;X坐标加一个增量值
;Y坐标加0

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章