开始 AX清零,入栈 小鸟汽车动画 总程序流程图 设置320*200彩色图形方式 清屏、宏调用CLEAR 显示提示信息 AL?键盘输入字符 Y(AL)=’1’? N清屏CLEAR Y(AL)=’2’ 调用小鸟子程序 NN(AL)=’3’ Y调用汽车子程序 清屏CLEAR 结束
- 5 -
开始 汽车子程序 将寄存器压栈 设置显示器显示方式 AL=3,80*25(彩色) 设置彩色组颜色为绿、红、黄 调用清屏宏 选择开始显示汽车的位置 5行0列 调用move_shape子程序 结束
- 6 -
开始 move_shap子程序 将寄存器压栈 取当前显示方式 给变量赋值,di指向字符图形表中的第一个字符 暂停和返回功能 行列坐标相对移动 N出屏否? Y显示汽车的字符CX=汽车的字符数 将寄存器出栈 使di指向汽车下一个字结束 CX=CX-1 NCX=0? Y 调用dly子程序 调用erase子程序
- 7 -
开始 dly子程序 将cx、dx寄存器压栈 DX=1000 CX=6801 CX=0? N CX=CX-1 Y DX=DX-1 N DX=0? Y 将cx、dx寄存器出栈 结束
- 8 -
开始 erase子程序 CX=汽车字符的个数; DX=汽车的相对坐标; di指向汽车字符 行列坐标相对移动 设置光标的位置 清除汽车的字符 使di指向汽车下一个字CX=CX-1 CX初值为汽车字符数 N CX=0? Y CX=汽车字符的个数; DH=汽车的行坐标; DL=DL+1汽车的列坐标加1; di指向汽车字符 结束
- 9 -