⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p29.asm

📁 assemly code for MASM 6.0
💻 ASM
字号:

.model small
.stack 100
TITLE	FILE	SIZE
.data
		BUFFER  DB 30
		ACTUAL DB 06
		FILE	DB 30 DUP (0)
		HANDLE DW 0
        M1              DB 10,13,'ENTER THE FILE NAME : $' 
        M2              DB 10,13,'FILE OPEN ERROR $'
        M3              DB 10,13,'FILE CLOSE ERROR $'
        M4              DB 10,13,'FILE POINTER ERROR$'
        M5              DB 10,13,'FILE SIZE IS $'
	SIZE1 		DW 0
	SIZE2 		DW 0
.code
START:  MOV     AX,@data
	MOV 	DS,AX 		; Display message M1
	MOV 	AH,09H
	LEA  	DX,M1
	INT  	21H 
	MOV 	AH,0AH		; I/P the file name
	LEA 	DX,BUFFER
	INT	21H
	LEA	BX,ACTUAL	; Load no. of character in file
	MOV	CL,[BX]		; Name in CX
	MOV	CH,0
	INC	BX
	ADD	BX,CX
	MOV	BYTE PTR [BX],0	; Convert file name to ASCII
	MOV	AH,3DH		; By putting 0 at it's end string
	MOV	AL,0
	LEA	DX,FILE		; Open file
	INT	21H
	JC	ERROR2		; If error display error
				; Message else
	MOV 	HANDLE,AX	; Save file handle
	MOV 	AH,42H
	MOV	BX,HANDLE	; MOV file pointer to the end
				; Of file
	MOV	AL,2
	MOV	CX,0
	MOV	DX,0
	INT	21H
	JC	ERROR3
	MOV	SIZE1,DX	; DX:AX gives new offset of file 
				; Pointer
	MOV	SIZE2,AX
	MOV	AH,9
	LEA	DX,M5
	INT	21H
	MOV	DX,SIZE1
	MOV	AX,SIZE2
	MOV	BX,10
	MOV	CX,5
BACK1:	DIV	BX		; Convert hex to BCD
	PUSH	DX
	XOR	DX,DX
	LOOP	BACK1
	MOV	CX,5
BACK2:  POP  	DX         	; Display file size
	ADD	DL,30H
	MOV	AH,2
	INT	21H
	LOOP	BACK2
	JMP	EXIT
ERROR2:	MOV	AH,9		; Display file open error
	LEA	DX,M2
	INT	21H
	JMP	EXIT
ERROR3:	MOV	AH,9
	LEA	DX,M3		; Display file close error
	INT	21H
	JMP	EXIT
ERROR4:	MOV	AH,9		; Display file pointer error
	LEA	DX,M4
	INT	21H
	JMP	TERMIN
EXIT :	MOV	AH,3EH		; Close the file
	MOV	BX,HANDLE
	INT	21H
	JC	ERROR4
TERMIN:	MOV	AH,4CH		; Terminate & exit to DOS
	INT	21H
        END     START
        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -