精品 文档
1) 按程序流程图编制实验程序。 2) 输入源程序。
3) 汇编、连接程序,执行程序,检查结果。
4) 程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。 五、源程序
实验五 EXAM5-1
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
执行程序EXAM5-1·EXE,屏幕上依次循环显示一个数字一个空格:
0 1 2 3 4 5 6 7 8 9 ……
实验五 EXAM5-2
精品 文档 欢迎 下载
精品 文档
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-2·EXE,输入HELLO↙屏幕上显示结果: *** HELLO ***
实验五 EXAM5-5
NAME EXAM6
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,63DUP(?) 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
精品 文档 欢迎 下载