运行一段代码如下:
DATA SEGMENT
NUM DB 0AH,0DH,'************* 姓名',0ah,0dh,'$'
FD EQU 0
LINEN EQU 7
DATA ENDS
STACK SEGMENT STACK
DW 100H DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK,DS:DATA
START: MOV AX,DATA
MOV DS,AX
;========MAIN()===========
CALL CRLF
CALL CRLF
;------上半打印---------
MOV CH,05H
LOP1:
;------PRINT SPACE------
MOV CL,11 ;循环控制
SUB CL,CH
LOP2A: CALL SPACE
DEC CL
JNZ LOP2A
;------PRINT 0-9-----
MOV CL,CH ;输出字符个数控制
ADD CL,CL
DEC CL
LOP2B:
;======题目10 End=======
MOV AL,FD ;输出字符
mov dl,al
add dl,'0'
mov dh,ch
call writecc
DEC CL
JNZ LOP2B
;------PRINT 0-9-End-
CALL CRLF
INC DH ;题目3
INC CH
CMP CH,LINEN
JBE LOP1
;-----上半打印结束---------
;-----下半打印结束---------
DEC DH
DEC DH
MOV CH,LINEN-1
XLOP1:
;------PRINT SPACE------
MOV CL,11
SUB CL,CH
XLOP2A: CALL SPACE
DEC CL
JNZ XLOP2A
;------PRINT 0-9-----
MOV CL,CH
ADD CL,CL
DEC CL
XLOP2B:
MOV AL,FD
mov dl,al
add dl,'0'
mov dh,ch
call writecc
DEC CL
JNZ XLOP2B
;------PRINT 0-9-End-
CALL CRLF
DEC CH
JNZ XLOP1
;-----下半打印结束---------
MOV DX,OFFSET NUM
MOV AH,9
INT 21H
MOV AH,1
INT 21H
;===========================
MOV AX,4C00H
INT 21H
;------------------------
CRLF PROC NEAR ;输出换行
PUSH AX
PUSH DX
MOV AH,2
MOV DL,0AH
INT 21H
MOV DL,0DH
INT 21H
POP DX
POP AX
RET
CRLF ENDP
SPACE PROC NEAR ;输出空格
PUSH AX
PUSH DX
MOV AH,2
MOV DL,''
INT 21H
POP DX
POP AX
RET
SPACE ENDP
;----------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;色彩字符;;;;;;;;;;;;;;;;;;;;;;;;;;;
;程序名称:WriteCC
;程序功能:色彩字符输出子程序
;入口条件:DL=输出字符的Ascll,DH=颜色值(0--9)
; 出口:无
;影响寄存器:无
col DB 00000011b,000000010b,00000100b,00001001b,000000001b
DB 00000110b,00001101b,00001100b,00000010b,00000101b
WriteCC PROC near
push AX
push bx
push cx
push dx
push si
xor AH,AH
MOV AL,dh
MOV si,AX
MOV AH,9
MOV AL,DL
MOV bh,0
MOV bl,col[si]
MOV cx,1
INT 10h
MOV AH,3
INT 10h
MOV AH,2
inc DL