kim
22-08-2012, 10:32 AM
;************************************************* ***
;CHUONG TRINH: Tinh dung luong cua mot tap tin. *
;DAC BIET co the tinh duoc file dung luong >64KB *
;************************************************* ***
CODE SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CODE, DS:CODE, ES:CODE, SS:CODE
ORG 100h
Begin:
JMP Start
Filename DB 255,0,255 DUP(0)
DTA DB 128 DUP(0)
String_Input DB 'Nhap duong dan den tap tin (vi du: C:\F2.ASM): $'
File_Size DB 0Dh,0Ah,'Kich thuoc tap tin la (don vi tinh: BYTE): $'
String_Error DB 0Dh,0Ah,'Khong tim thay tap tin. $'
Start:
MOV AX,CS
MOV DS,AX
MOV ES,AX
CALL Clear_Screen
;----------------------------------------------------
đăng ký sử dụng phần mềm chứng khoán (http://stockonlinevn.vn/DangKySuDung/BangGia.aspx) MOV DX,offset String_Input
MOV AH,09h
INT 21h
CLD
MOV DX,offset Filename
MOV AL,0Ah
đăng ký sử dụng phần mềm chứng khoán MOV AH,0Ch
INT 21h
XOR BX,BX
MOV BL,byte PTR[filename+1]
MOV byte PTR[filename+BX+2],0
MOV DX,offset DTA
MOV AH,1Ah
INT 21h
XOR CX,CX
MOV DX,offset filename+2
MOV AH,4Eh
INT 21h
JC NotFoundFile
;----------------------------------------------------
MOV DX,offset File_Size
MOV AH,09h
INT 21h
MOV giúp đỡ sử dụng chứng khoán (http://stockonlinevn.vn/About.aspx) BX,Word PTR[DTA+1Ah]
MOV DX,Word PTR[DTA+1Ch]
CALL WriteDec32bit
JMP QUIT
NotFoundFile:
MOV DX,offset String_Error
MOV AH,09h
INT 21h
;---------------------------------------------------
QUIT:
MOV AH,01h
INT 21h
MOV AH, 4Ch
INT 21h
RET
;----------------------------------------------------
Clear_Screen giúp đỡ sử dụng chứng khoán PROC NEAR
XOR DX,DX
MOV AH,2
INT 10H
MOV AL,20h
MOV CX,2000
MOV AH,0Ah
INT 10H
RET
Clear_Screen ENDP
;----------------------------------------------------
WriteDec32bit chiêu thức áp dụng chứng khoán (http://stockonlinevn.vn/ChieuThucApDung/Bai1.aspx) PROC NEAR
MOV AX,DX
MOV SI,10d
XOR CX,CX
Loop_div:
XOR DX,DX
DIV SI
PUSH AX
MOV AX,BX
DIV SI
MOV BX,AX
POP AX
PUSH DX
INC CX
CMP AX,BX
JZ Write_digit_loop
JMP Loop_div
Write_digit_loop:
POP AX
ADD AL,'0'
INT 29h
Loop Write_digit_loop
EndWDec:
RET
WriteDec32Bit ENDP
;----------------------------------------------------
CODE ENDS
END chiêu thức áp dụng chứng khoán Begin
---------- Post added at 20:29 ---------- Previous post was at 20:27 ----------
Hai đoạn này quan trọng nhất giúp em vơi! Thank nhiều
MOV DX,offset String_Input
MOV AH,09h
INT 21h
CLD
MOV DX,offset Filename
MOV AL,0Ah
MOV AH,0Ch
INT 21h
XOR BX,BX
MOV BL,byte PTR[filename+1]
MOV byte PTR[filename+BX+2],0
MOV DX,offset DTA
MOV AH,1Ah
INT 21h
XOR CX,CX
MOV DX,offset filename+2
MOV AH,4Eh
INT 21h
JC NotFoundFile
;----------------------------------------------------
MOV DX,offset File_Size
MOV AH,09h
INT 21h
MOV BX,Word PTR[DTA+1Ah]
MOV DX,Word PTR[DTA+1Ch]
CALL WriteDec32bit
JMP QUIT
NotFoundFile:
MOV DX,offset String_Error
MOV AH,09h
INT 21h
;---------------------------------------------------
;CHUONG TRINH: Tinh dung luong cua mot tap tin. *
;DAC BIET co the tinh duoc file dung luong >64KB *
;************************************************* ***
CODE SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CODE, DS:CODE, ES:CODE, SS:CODE
ORG 100h
Begin:
JMP Start
Filename DB 255,0,255 DUP(0)
DTA DB 128 DUP(0)
String_Input DB 'Nhap duong dan den tap tin (vi du: C:\F2.ASM): $'
File_Size DB 0Dh,0Ah,'Kich thuoc tap tin la (don vi tinh: BYTE): $'
String_Error DB 0Dh,0Ah,'Khong tim thay tap tin. $'
Start:
MOV AX,CS
MOV DS,AX
MOV ES,AX
CALL Clear_Screen
;----------------------------------------------------
đăng ký sử dụng phần mềm chứng khoán (http://stockonlinevn.vn/DangKySuDung/BangGia.aspx) MOV DX,offset String_Input
MOV AH,09h
INT 21h
CLD
MOV DX,offset Filename
MOV AL,0Ah
đăng ký sử dụng phần mềm chứng khoán MOV AH,0Ch
INT 21h
XOR BX,BX
MOV BL,byte PTR[filename+1]
MOV byte PTR[filename+BX+2],0
MOV DX,offset DTA
MOV AH,1Ah
INT 21h
XOR CX,CX
MOV DX,offset filename+2
MOV AH,4Eh
INT 21h
JC NotFoundFile
;----------------------------------------------------
MOV DX,offset File_Size
MOV AH,09h
INT 21h
MOV giúp đỡ sử dụng chứng khoán (http://stockonlinevn.vn/About.aspx) BX,Word PTR[DTA+1Ah]
MOV DX,Word PTR[DTA+1Ch]
CALL WriteDec32bit
JMP QUIT
NotFoundFile:
MOV DX,offset String_Error
MOV AH,09h
INT 21h
;---------------------------------------------------
QUIT:
MOV AH,01h
INT 21h
MOV AH, 4Ch
INT 21h
RET
;----------------------------------------------------
Clear_Screen giúp đỡ sử dụng chứng khoán PROC NEAR
XOR DX,DX
MOV AH,2
INT 10H
MOV AL,20h
MOV CX,2000
MOV AH,0Ah
INT 10H
RET
Clear_Screen ENDP
;----------------------------------------------------
WriteDec32bit chiêu thức áp dụng chứng khoán (http://stockonlinevn.vn/ChieuThucApDung/Bai1.aspx) PROC NEAR
MOV AX,DX
MOV SI,10d
XOR CX,CX
Loop_div:
XOR DX,DX
DIV SI
PUSH AX
MOV AX,BX
DIV SI
MOV BX,AX
POP AX
PUSH DX
INC CX
CMP AX,BX
JZ Write_digit_loop
JMP Loop_div
Write_digit_loop:
POP AX
ADD AL,'0'
INT 29h
Loop Write_digit_loop
EndWDec:
RET
WriteDec32Bit ENDP
;----------------------------------------------------
CODE ENDS
END chiêu thức áp dụng chứng khoán Begin
---------- Post added at 20:29 ---------- Previous post was at 20:27 ----------
Hai đoạn này quan trọng nhất giúp em vơi! Thank nhiều
MOV DX,offset String_Input
MOV AH,09h
INT 21h
CLD
MOV DX,offset Filename
MOV AL,0Ah
MOV AH,0Ch
INT 21h
XOR BX,BX
MOV BL,byte PTR[filename+1]
MOV byte PTR[filename+BX+2],0
MOV DX,offset DTA
MOV AH,1Ah
INT 21h
XOR CX,CX
MOV DX,offset filename+2
MOV AH,4Eh
INT 21h
JC NotFoundFile
;----------------------------------------------------
MOV DX,offset File_Size
MOV AH,09h
INT 21h
MOV BX,Word PTR[DTA+1Ah]
MOV DX,Word PTR[DTA+1Ch]
CALL WriteDec32bit
JMP QUIT
NotFoundFile:
MOV DX,offset String_Error
MOV AH,09h
INT 21h
;---------------------------------------------------