河北工业大学汇编语言程序设计实验五
5-3
ASSUME CS:CODE,DS:DATA,SS:STACK1
DATA SEGMENT
COL DW 50
ROW DW 100
LENG1 DW 200
LENG2 DW 100
COLOR DB 1100B
DATA ENDS
STACK1 SEGMENT STACK
DW 20 DUP(0)
STACK1 ENDS
CODE SEGMENT
START:
MOV AX,DATA
MOV DS,AX
MOV AH,0
MOV AL,12H
INT 10H
MOV DX,ROW
MOV CX,COL
CALL PROC_X ;
MOV DX,ROW
MOV CX,COL
CALL PROC_Y
MOV DX,ROW
MOV CX,COL
ADD CX,LENG1
CALL PROC_Y
MOV DX,ROW
MOV CX,COL
ADD DX,LENG2
CALL PROC_X
MOV AH,1
INT 21H
MOV AH,0
MOV AL,3
INT 21H
MOV AX,4C00H
INT 21H
PROC_X PROC
MOV BP,LENG1
LOP1:
MOV BH,0
INC CX
MOV AL,COLOR
MOV AH,0CH
INT 10H
DEC BP
JNE LOP1
RET
PROC_X ENDP
PROC_Y PROC
MOV BP,LENG2
LOP2:
MOV BH,0
INC DX
MOV AL,COLOR
MOV AH,0CH
INT 10H
DEC BP
JNE LOP2
RET
PROC_Y ENDP
CODE ENDS
END START
5-7
ASSUME CS:CODE,DS:DATA
DATA SEGMENT
LP1 DW 25 ;设置绘制横线的次数
LP2 DW 0
LP3 DW 0
LP4 DW 0
STCX DW 25 ;设置第一个点打下的坐标x
STBX DW 50 ;设置第一条线结束的坐标x
STDX DW 25 ;设置第一个点打下的坐标y
COLO DB 0001B ;设置绘制的横线的颜色
DATA ENDS
CODE SEGMENT
START:
MOV AX,DATA
MOV DS,AX
MOV AX,0
MOV AH,01H ;输入需要绘制的方格的数目
INT 21H
SUB AX,130H
MOV LP2,AX
MOV AL,13H
MOV AH,0
INT 10H ;设置背景
MOV CX,LP2
RE2: ;最外层循环,控制绘制方格的数目
MOV LP2,CX
MOV DX,STDX
MOV CX,LP1
RE1: ;内层循环,由点成线由线成面
MOV LP1,CX
MOV CX,STCX
MOV BX,STBX
INT 10H
PHENG: ;打点绘制一条横线
MOV AL,COLO
MOV AH,0CH
INC CX
CMP CX,BX
INT 10H
JNE PHENG
MOV CX,LP1
ADD DX,1
LOOP RE1
MOV AX,STBX ;改变变量的值来移动方格
ADD AX,25
MOV STBX,AX
MOV AX,STCX
ADD AX,25
MOV STCX,AX
MOV AL,COLO
ADD AL,1
MOV COLO,AL
MOV AX,25
MOV LP1,AX
MOV CX,LP2
LOOP RE2
MOV AH,4CH
INT 21H
CODE ENDS
END START