资源描述:
《daa法汇编语言四个象限直线插补》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、DDA法汇编语言四个象限直线插补DDA法汇编语言四个象限直线插补程序流程图如图所示。四个象限直线插补程序流程图#include#include#include#include#includeintxe,ye,jvx,jvy,jrx,jry,xi,yi,jsh,lxy;/*xe、ye终点坐标jvx、jvy被积函数,jrx、jry余数寄存器xi、yi动点坐标,jsh计数长度,,lxy象限号*/voidzxcb1();//声明第一象限直线插补函数voidzx
2、cb2();//声明第2象限直线插补函数voidzxcb3();//声明第3象限直线插补函数voidzxcb4();//声明第4象限直线插补函数voidmain()//主函数{intgd=DETECT,gm;//显示模式变量again:clrscr();//清屏printf("L1_L4:Pleaseinputxe,ye:");//提示输入终点坐标scanf("%d,%d",&xe,&ye);//等待输入if(xe==0&&ye==0){printf("inputerror,enteranycontinue.");getch();gotoagai
3、n;}//输入错误继续输入if(xe==0&&ye>0)lxy=2;//终点为第2象限if(xe==0&&ye<0)lxy=4;//终点为第4象限if(ye==0&&xe>0)lxy=1;//终点为第一象限if(ye==0&&xe<0)lxy=3;//终点为第3象限if(xe>0&&ye>0)lxy=1;//终点为第一象限if(xe>0&&ye<0)lxy=4;//终点为第4象限if(xe<0&&ye>0)lxy=2;//终点为第2象限if(xe<0&&ye<0)lxy=3;//终点为第3象限xi=320;yi=240;//动点置屏幕中间init
4、graph(&gd,&gm,"");//图形显示方式jsh=0;jrx=0;jry=0;jvx=abs(xe);jvy=abs(ye);switch(lxy){case1:zxcb1();break;//第一象限调用插补程序函数1case2:zxcb2();break;//第一象限调用插补程序函数2case3:zxcb3();break;//第一象限调用插补程序函数3case4:zxcb4();break;//第一象限调用插补程序函数4}gotoxy(10,24);printf("L%d:xe=%d,ye=%d",lxy,xe,ye);//显示终
5、点坐标gotoxy(10,25);printf("pressanykey:");//提示按任意键getch();//等待按键}voidzxcb1()//第一象限插补函数1{asmmovcx,xi//显示起点asmmovdx,yiasmmovah,0chasmmoval,2asmint10hagain:asmmovax,jvx//X方向积分asmaddjrx,axasmjncnext1//无进位下asmincxi//下正X方向进给next1:asmmovax,jvy//Y方向积分asmaddjry,axasmjncnext2//无进位下转asmde
6、cyi//正Y进给next2:asmmovcx,xi//显示动点asmmovdx,yiasmmovah,0chasmmoval,2asmint10hasmmovdx,0100h//延时next2a:asmmovcx,00ffhnext2b:asmdeccxasmjnznext2basmdecdxasmjnznext2aasmincjsh//计数长度加1asmjnzagain//未到终点继续}voidzxcb2()//第2象限插补函数1{asmmovcx,xi//显示起点asmmovdx,yiasmmovah,0chasmmoval,2asmint
7、10hagain:asmmovax,jvx//X方向积分asmaddjrx,axasmjncnext1//无进位下asmdecxi//下负X方向进给next1:asmmovax,jvy//Y方向积分asmaddjry,axasmjncnext2//无进位下转asmdecyi//正Y进给next2:asmmovcx,xi//显示动点asmmovdx,yiasmmovah,0chasmmoval,2asmint10hasmmovdx,0100h//延时next2a:asmmovcx,00ffhnext2b:asmdeccxasmjnznext2bas
8、mdecdxasmjnznext2aasmincjsh//计数长度加1asmjnzagain//未到终点继续}voidzxcb3()//