2) 总结输入输出程序及动画的编写方法。 3) 总结常用系统调用的功能及调用方法。
Exam1:
STACK SEGMENT STACK DB 1024 DUP(0) STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK START: MOV BL, 0 LP: MOV DL, 20H
MOV AH, 2 INT 21H
MOV AL, BL ADD AL, 0 DAA
AND AL, 0FH MOV BL, AL PUSH BX
OR AL, 30H MOV DL, AL MOV AH, 2 INT 21H
MOV BX, 3E8H
LP2: MOV CX, 176H ;延时1ms LP1: PUSHF
POPF
LOOP LP1 DEC BX JNZ LP2 POP BX INC BL JMP LP
CODE ENDS
END START
Exam2:
STACK SEGMENT STACK DB 1024 DUP(0) STACK ENDS DATA SEGMENT
BUFF DB 6,7 DUP(?),‘$’ DATA ENDS
INPUT MACRO BUFE
MOV DX, OFFSET BUFE MOV AH, 0AH INT 21H ENDM
PUTCHAR MACRO CHAR
MOV DL, CHAR MOV AH, 02H INT 21H ENDM CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX, DATA
MOV DS, AX
INPUT BUFF ;读取字符串?BUFF PUTCHAR 0DH
PUTCHAR 0AH ;光标另起一行 MOV CX, 0003H NEXT:PUTCHAR 2AH
LOOP NEXT
MOV CL, BUFF+1 SUB CH, CH
MOV BX, OFFSET BUFF+2 BEGIN: MOV AL, [BX]
PUTCHAR AL INC BX LOOP BEGIN MOV CX, 0003H
NEXT1: PUTCHAR 2AH
LOOP NEXT1 MOV AH, 4CH INT 21H
CODE ENDS
END START
Exam5:
SSTACK SEGMENT STACK 'stack' DB 1024 DUP(?) SSTACK ENDS DATA SEGMENT
ASKNAME DB 0DH,0AH,'Enter the' DB 'dest file name:$'
ASKCONT DB 0DH,0AH,'Enter the string' DB 'as file content:'0dh,0ah,'$' FILEBUF DB 62,63 DUP(?) HAND_D DW ?
MSGMER DB 0DH,0AH,0AH
DB 'Directory full',0DH,0AH,'$' MSGWER DB 0DH,0AH,0AH
DB 'Disk full',0DH,0AH,'$' MSGSUC DB 0DH,0AH,0AH
DB 'Write file is Successful' DB 0DH,0AH,'$' DATA ENDS
DISPLY MACRO TEXT MOV DX,OFFSET TEXT MOV AH,09H INT 21H ENDM
CRHAND MACRO PATH,ATTR MOV DX,OFFSET PATH MOV CL,ATTR XOR CH,CH
MOV AH,3CH INT 21H ENDM
WRHAND MACRO HAND,BUFF,BYTE MOV BX,HAND
MOV DX,OFFSET BUFF ADD DX,2 MOV CL,BYTE XOR CH,CH MOV AH,40H INT 21H ENDM
CLHAND MACRO HAND MOV BX,HAND MOV AH,3EH INT 21H ENDM
CODE SEGMENT PROG PROC FAR
ASSUME CS:CODE,DS:DATA,SS:SSTACK PUSH DS MOV AX,0 PUSH AX
MOV AX,DATA
MOV DS,AX DISPLY ASKNAME
MOV DX,OFFSET FILEBUF MOV AH,0AH INT 21H
MOV DI,OFFSET FILEBUF[2] MOV BL,FILEBUF[1] XOR BH,BH
MOV BYTE PTR[BX][DI],00H
CRHAND FILEBUF[2],0 JC CRTERR MOV HAND_D,AX DISPLY ASKCONT
MOV DX,OFFSET FILEBUF MOV AH,0AH INT 21H
WRHAND HAND_D,FILEBUF,FILEBUF[1] JC WRITERR CLHAND HAND_D DISPLY MSGSUC
JMP EXIT
CRTERR: DISPLY MSGMER JMP EXIT
WRITERR:DISPLY MSGWER EXIT: RET PROG ENDP CODE ENDS END PROG