河北工业大学汇编语言实验设计
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 ;提示输入文件名 CRHAND DISPLY WRHAND CLHAND DISPLY 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
FILEBUF[2],0 JC CRTERR
MOV HAND_D,AX ASKCONT MOV DX,OFFSET FILEBUF MOV AH,0AH INT 21H
HAND_D,FILEBUF,FILEBUF[1] JC WRITERR HAND_D MSGSUC JMP EXIT
;创建并打开新文件 ;存文件句柄 ;提示键入文件内容 河北工业大学汇编语言实验设计
CRTERR: DISPLY MSGMER JMP EXIT WRITERR:DISPLY MSGWER EXIT: RET PROG ENDP CODE ENDS
END PROG