资源描述:
《东华大学微机课程设计.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、图形的移动旋转可以分几步进行:(1)先在屏幕上显示某个图形(自定义图形);(2)延时适当时间(3)清除这个图形;(4)改变图形显示的行列坐标及倾角(5)返回第(1)步,重复上述过程。按下回车结束。 可自定义上、下、左、右移动键及顺时针、逆时针旋转键,还可以直接给出移动坐标、旋转角等。;includeMyMacro.h;*****************************宏文件包含*********************************;MyMacro.inc-macrodefinitionsdefinedbyfo
2、reasyinput/output;writtendate:2014/1/5;——————声明——————;以下创建一些程序中经常用到的功能的宏,其中一部分引用EMU8086环境内置宏文件emu8086.inc或;经本人修改后完成。为了省掉链接过程,这里将该部分不另存为一个文件,而是直接包含在此。;*********************输出字符串******************;thismacroprintsastringthatisgivenasaparameter,example:;PRINT'helloworld!
3、';newlineisNOTadded.PRINTMACROsdatLOCALnext_char,s_dcl,printed,skip_dclPUSHAX;storeregisters...PUSHSI;PUSHBXJMPskip_dcl;skipdeclaration.s_dclDBsdat,0skip_dcl:LEASI,s_dclMOVBX,3next_char:MOVAL,CS:[SI]CMPAL,0JZprintedINCSIMOVAH,0Eh;teletypefunction.INT10hJMPnext_charpr
4、inted:POPBXPOPSI;re-storeregisters...POPAX;ENDM;************************************************;*****************设置光标位置********************;setscurrentcursor;position:GOTOXYMACROcol,rowPUSHAXPUSHBXPUSHDXMOVAH,02hMOVDH,rowMOVDL,colMOVBH,0INT10hPOPDXPOPBXPOPAXENDM;***
5、*********************************************;******************单字符的输出*******************;thismacroprintsacharinALandadvances;thecurrentcursorposition:PUTCMACROcharPUSHAXPUSHBXMOVBX,01MOVAL,charMOVAH,0EhINT10hPOPBXPOPAXENDM;*******************************************
6、*****;*********************清屏函数******************;thismacrodefinesproceduretoclearthescreen,;(donebyscrollingentirescreenwindow),;andsetcursorpositiontotopofit:DEFINE_CLEAR_SCREENMACROLOCALskip_proc_clear_screen;protectfromwrongdefinitionlocation:JMPskip_proc_clear_s
7、creenCLEAR_SCREENPROCNEARPUSHAX;storeregisters...PUSHDS;PUSHBX;PUSHCX;PUSHDI;MOVAX,40hMOVDS,AX;forgettingscreenparameters.MOVAH,06h;scrollupfunctionid.MOVAL,0;scrollalllines!MOVBH,10H;attributefornewlines.MOVCH,0;upperrow.MOVCL,0;uppercol.MOVDI,84h;rowsonscreen-1,MOV
8、DH,[DI];lowerrow(byte).MOVDI,4Ah;columnsonscreen,MOVDL,[DI]DECDL;lowercol.INT10h;setcursorpositiontotop;ofthescreen:MOVBH,0;current