例8.5 在256色320×200的图形显示模式下,从屏幕最左边向最右边,依次画竖线(从顶到底),线的颜色从1依次加1。要求用中断调用的方法来画线。
| 解: | ||||
| .MODEL SMALL .DATA mode DB ? ;保存当前显示模式 .CODE  | 
  ||||
| VLine | PROC Near USES AX BX DX | ;画一条竖线,CX—竖线所在的列,AL—线的颜色 | ||
| MOV | DX, 0 | |||
| MOV | BH, 0 | |||
| MOV | AH, 0CH | |||
| draw: | ||||
| VLine | INT | 10H | ||
| INC | DX | |||
| CMP | DX, 200 | |||
| JL | draw | |||
| RET | ||||
| ENDP | ||||
| .STARTUP | ||||
| MOV | AH, 0FH | |||
| INT | 10H | |||
| MOV | mode, AL | ;保存当前显示模式,在程序结束前恢复之 | ||
| MOV | AH, 0 | |||
| MOV | AL, 13H | |||
| INT | 10H | ;设置256色320×200的图形显示模式 | ||
| MOV | CX, 0 | |||
| MOV | AL, 01H | ;CX=线所在列,AL=线的颜色 | ||
| draw: | ||||
| CALL | VLine | |||
| INC | AL | |||
| INC | CX | |||
| CMP | CX, 320 | |||
| JL | draw | ;从左到右画320条竖线 | ||
| MOV | AH, 0 | |||
| INT | 16H | ;等待一个按键 | ||
| MOV | AL, mode | |||
| MOV | AH, 0 | |||
| INT | 10H | ;恢复原来的屏幕显示模式 | ||
| .EXIT 0 | ||||
| END | ||||