-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 |