目录 上一页 下一页 下一章

第9章 图形显示 -257-




adjust:


next:










line

point












point
code

cmp
jg
jmp

add
sub

add
loop

pop
pop
pop
pop
pop
pop
ret
endp

proc
push
push
push
mov
mov
mov
mov
int
pop
pop
pop
ret
endp
ends
end
ax,bx
adjust
next

[x1+bp],dx
ax,delta2

ax,delta1
lineloop

di
si
dx
cx
bx
ax



near
ax
cx
dx
cx,x1
dx,y1
al,color
ah,0ch
10h
dx
cx
ax



main
;将AX中的2ΔY′累加值与BX中的ΔX′比较
;若2ΔY′大于ΔX′则转ADJUST进行调整
;否则转NEXT继续

;将Y1坐标加上一个增量值
;同时AX中2ΔY′的累加值减去一个2ΔX′

;继续在AX寄存器中累加2ΔY′
;转LINELOOP继续画点

;恢复各寄存器初值





;返回主过程


;画点子过程
;保存寄存器


;X坐标送入CX寄存器
;Y坐标送入BX寄存器
;颜色值送入AL寄存器
;调用10H中断的0CH功能画一个点

;恢复寄存器


;返回LINE子过程



  这个程序很长,数据量很大,一旦录入出了错很不好查找。不过只要大家有耐心,最终还是会被这个程序的输出所吸引的。当然,程序中出现的新指令我们还是要先讨论的。
助记符:NEG(Negate)
用 途:求一个数的相反数
格 式:NEG 寄存器

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章