![]() | 第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 |